<img src="IMG\borito.png" />
<div style="text-align: center;"><img src="IMG\borito2.png" />
My name is <n1>Grimward.</n1> I’ve long been a devoted fan of the world of online animation - whether short or long, 2D or 3D, silly or serious. I watch these creations with passion, because I believe animation is more than just visuals. It’s emotion. Atmosphere. A way to build entire worlds from nothing. It’s my dream to one day bring my own ideas to life - to animate my own characters, stories, and universes. To become a creator, not just a viewer. But for now, technical limitations stand in my way. So all I can do is watch - and feel the ache of something missing. Because there’s one thing I constantly long for in so many of these animations: story. Too often, animation focuses on style over substance. Too rarely do I see narratives - real ones, with heart, conflict, and meaning. That’s why I had an idea: until I can animate my own work, I’ll gather the works of others - the characters, the worlds, the visual sparks - and weave them into something new. A story. A world. This is how this world was born. And this is how the story begins.
<img src="IMG\borito3.png" />
This is a journey made for adults. Not a fairy tale wrapped in pink clouds, but a satirical, strange, sometimes dark, sometimes overheated world - where good taste occasionally goes on vacation. <n1>So... if you're not yet 18:</n1> Close this page, make yourself a cup of tea, and go watch your favorite cartoon instead. But <n1>if you are over 18,</n1> and you feel ready for a twisted, rule-breaking story... Welcome. The gate is open. The story awaits, but first – let’s tune your interface to your liking. </div> <div style="text-align: center;"> [[Customize your interface|Settings]]</div>
<<set $clickVol = (function(){
const n = Number($clickVol);
if (Number.isFinite(n)) {
const norm = n > 1 ? n/100 : n;
return Math.max(0, Math.min(1, norm));
}
return 0.4;
})()>>
<script>
(function () {
// ---- Biztonságos SugarCube handlek ----
const ST = (window.SugarCube && SugarCube.State) || window.State;
const VARS = ST ? ST.variables : {};
const SET = (window.SugarCube && SugarCube.setup) || window.setup || (window.setup = {});
// ---- Wrapper ----
let wrapper = document.getElementById("musicPlayer");
if (!wrapper) {
wrapper = document.createElement("div");
wrapper.id = "musicPlayer";
Object.assign(wrapper.style, {
position: "fixed",
bottom: "10px",
right: "10px",
zIndex: "999",
backgroundColor: "rgba(0,0,0,0.5)",
padding: "8px",
borderRadius: "8px",
display: "flex",
flexDirection: "column",
alignItems: "center",
gap: "4px"
});
document.body.appendChild(wrapper);
}
// ---- Háttérzene ----
let audio = document.getElementById("bgm");
if (!audio) {
audio = document.createElement("audio");
audio.id = "bgm";
audio.src = "music/yourtrack.mp3"; // ← saját track
audio.loop = true;
audio.autoplay = true;
audio.volume = (typeof VARS.musicVol === "number") ? Math.max(0, Math.min(1, VARS.musicVol)) : 1;
audio.style.display = "none";
document.addEventListener("click", () => audio.play().catch(()=>{}), { once: true });
wrapper.appendChild(audio);
}
// ---- Music slider ----
if (!document.getElementById("volumeControl")) {
const label1 = document.createElement("div");
label1.textContent = "Music";
label1.style.fontSize = "12px";
label1.style.color = "#cce6f5";
const vol = document.createElement("input");
vol.type = "range";
vol.id = "volumeControl";
vol.min = "0"; vol.max = "1"; vol.step = "0.01";
vol.value = String(audio.volume ?? 1);
vol.style.width = "140px";
vol.addEventListener("input", function () {
audio.volume = parseFloat(this.value);
VARS.musicVol = audio.volume;
});
wrapper.appendChild(label1);
wrapper.appendChild(vol);
}
// ---- Effects slider (globális minden SFX-re) ----
if (!document.getElementById("effectsVolumeControl")) {
const label2 = document.createElement("div");
label2.textContent = "Effects";
label2.style.fontSize = "12px";
label2.style.color = "#cce6f5";
const sfx = document.createElement("input");
sfx.type = "range";
sfx.id = "effectsVolumeControl";
sfx.min = "0"; sfx.max = "1"; sfx.step = "0.01";
// Normalizált induló érték (0–1)
const startVol = (() => {
const n = Number(VARS.clickVol);
if (Number.isFinite(n)) {
const norm = n > 1 ? n / 100 : n;
return Math.max(0, Math.min(1, norm));
}
return 0.4;
})();
sfx.value = String(startVol);
sfx.style.width = "140px";
// INDULÁSKOR azonnal alkalmazzuk minden meglévő setup-beli Audio-ra
VARS.clickVol = startVol;
for (const key in SET) {
if (SET[key] instanceof Audio) {
try { SET[key].volume = startVol; } catch {}
}
}
// Slider húzáskor is azonnali frissítés
sfx.addEventListener("input", function () {
const v = Math.max(0, Math.min(1, parseFloat(this.value)));
VARS.clickVol = v;
for (const key in SET) {
if (SET[key] instanceof Audio) {
try { SET[key].volume = v; } catch {}
}
}
});
wrapper.appendChild(label2);
wrapper.appendChild(sfx);
}
})();
</script>
<<set $videoVol = (function(){
const n = Number($videoVol);
if (Number.isFinite(n)) {
const norm = n > 1 ? n/100 : n;
return Math.max(0, Math.min(1, norm));
}
return 0.3;
})()>>
<script>
(function () {
const ST = (window.SugarCube && SugarCube.State) || window.State;
const VARS = ST ? ST.variables : {};
let wrapper = document.getElementById("musicPlayer");
if (!wrapper) return;
// ---- Video slider ----
if (!document.getElementById("videoVolumeControl")) {
const label3 = document.createElement("div");
label3.textContent = "Video";
label3.style.fontSize = "12px";
label3.style.color = "#cce6f5";
const vslider = document.createElement("input");
vslider.type = "range";
vslider.id = "videoVolumeControl";
vslider.min = "0"; vslider.max = "1"; vslider.step = "0.01";
vslider.value = String(typeof VARS.videoVol === "number" ? VARS.videoVol : 0.3);
vslider.style.width = "140px";
// REAL-TIME: csúszkahúzáskor azonnal állítsuk a futó videók hangját
vslider.addEventListener("input", function () {
VARS.videoVol = parseFloat(this.value);
document.querySelectorAll("video").forEach(v => {
try { v.volume = VARS.videoVol; } catch {}
});
});
wrapper.appendChild(label3);
wrapper.appendChild(vslider);
}
// ---- Fade-in, dinamikus célértékkel ----
$(document).on(':passagerender', function () {
setTimeout(() => {
document.querySelectorAll("video").forEach(video => {
video.volume = 0;
video.currentTime = 0;
if (video._fadeInterval) {
clearInterval(video._fadeInterval);
video._fadeInterval = null;
}
setTimeout(() => {
video.play().then(() => {
const stepDelay = 100; // ms
const maxStep = 0.05; // max 5% lépés
const eps = 0.005; // cél-közeli holtzóna
video._fadeInterval = setInterval(() => {
const target = (VARS.videoVol ?? 0.3);
const diff = target - video.volume;
if (Math.abs(diff) <= eps) {
video.volume = target;
return; // hagyjuk futni, hogy sliderre azonnal kövesse
}
const step = Math.min(Math.abs(diff), maxStep);
video.volume += Math.sign(diff) * step;
}, stepDelay);
const clear = () => {
if (video._fadeInterval) {
clearInterval(video._fadeInterval);
video._fadeInterval = null;
}
};
video.addEventListener('ended', clear, { once: true });
}).catch(e => console.warn("Nem sikerült elindítani a videót:", e));
}, 150);
});
}, 50);
});
})();
</script>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\logo.png" width="230">
<div style="text-align: center; font-size: 28px;">
Last visited:
<span style="font-weight: bold;"><n3><<print $lastvisit>></n3></span>
</div>
<<if $tutorial is true>><a data-passage="Tutorial" class="link-internal link-image">
<img src="IMG\quest.png" width="230"></a><<else>><a data-passage="Quests" class="link-internal link-image">
<img src="IMG\quest.png" width="230"></a><</if>>
<a data-passage="Starlog" class="link-internal link-image">
<img src="IMG\starlog.png" width="230"></a>
<<if $message is true>>
<div id="rightDock">
<a id="notifyBtn" class="link-internal" data-passage="message">
<img src="IMG/1/message.gif" width="230" alt="Intergalactic Message Received">
</a>
</div>
<</if>><img src="IMG\Prolog\1.png" />
Far beyond the Milky Way, on the edge of a polished and forgotten galaxy, there drifts a planet known by name to only a handful of species in the universe. <n1>Xelyar Prime</n1> - a world that resembles a dream born in thought more than a place shaped by matter. Its surface is a sea of shifting energy waves; its atmosphere hums with sentient particles that respond to the thoughts of its inhabitants. Its mountains are ancient crystalline monoliths, alive with memory - they not only store the past, but will recount it to those who ask.
<img src="IMG\Prolog\2.png" />
Here was born Auren Thal, a child of the Zenthari people – a race that once waged colossal wars and made tremendous sacrifices to elevate their technology and conquer the universe. <n1>There was a time when entire planets surrendered at the mere mention of the Zenthari name</n1> – often without a single shot fired. Their war machines became legendary: <n1>a single command could erase a world</n1>, leaving nothing behind but silence. This era brought glory to the conquerors – <n1>but endless boredom to their descendants</n1>. For when there are no more enemies, no more mysteries to unravel, and even the unknown is charted, curiosity becomes a drifting ember without purpose. Auren Thal grew up in this new age – <n1>a young, eager Zenthari, hungry for challenge and knowledge</n1>. But what becomes of one who has no adversary? <n1>No goal left to reach</n1>? When every answer is known, and every path has been walked… <n1>Or has it?</n1>
<img src="IMG\Prolog\3.png" />
What drives the young Zenthari now is something entirely different. <n1>They have declared war on boredom</n1>. In a reality where technology, politics, and economics have all reached their peaks, there is nothing left to optimize - only to enjoy, to twist, to reinvent. And so, <n1>they turned their attention to the art of amusement</n1>. Not idle distractions or superficial pleasures, but <n1>a refined pursuit: the challenge of keeping curiosity alive</n1>. Entertainment became a science. The fight against monotony, a noble cause. To achieve this, <n1>they set new goals for themselves</n1>. They began exploring the universe once more - <n1>not as conquerors, but as seekers</n1>. Not to dominate, but to experience. Not to expand their power, but to stretch the limits of understanding and imagination. They are no longer masters of war - <n1>they are pioneers of wonder</n1>.
<img src="IMG\Prolog\4.png" />
Auren Thal found his purpose among his own generation - <n1>the restless youth of the Zenthari</n1> - when he joined a bold new movement known as the <n1>Zoolithic Exchange</n1>. Founded not by scientists or soldiers, but by young pioneers of amusement and meaning, the Exchange set out to do what had never been done before. Their vision was as ambitious as any conquest of old: to build a <n1>galactic “zoo”</n1> unlike any the stars had ever seen. A living archive, a sanctuary of wonder, gathering the rarest and most fascinating [[lifeforms in the universe]]<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG\terminal.png" />
Here you can see the assignments sent to you by the Zoolithic Exchange. <n1>Through the Order Terminal, you can check which creatures you need to capture, modify, or recreate.</n1> Each mission includes a detailed description of the target species, its planet of origin, biological traits, and potential threats. The terminal maintains a constant link with the guild's central databas.
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<a data-passage="werewolf" class="link-internal link-image">
<img src="IMG/1/werewolf.png" alt="werewolf" style="width: 270px;">
</a>
<a data-passage="oni" class="link-internal link-image">
<img src="IMG/1/oni.png" alt="oni" style="width: 270px;">
</a>
<a data-passage="yako" class="link-internal link-image">
<img src="IMG/1/yako.png" alt="yako" style="width: 270px;">
</a>
<a data-passage="sadako" class="link-internal link-image">
<img src="IMG/1/sadako.png" alt="sadako" style="width: 270px;">
</a>
<a data-passage="minotaur" class="link-internal link-image">
<img src="IMG/1/minotaur.png" alt="sadako" style="width: 270px;">
</a>
</div>
<div style="text-align: center;">[[Back|Ship]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<<if $werewolf is true>><<set $wwStage to 5>> <</if>>
<<if $oni is true>> <<set $oniStage to 7>> <</if>>
<<if $yako is true>> <<set $yakoStage to 7>> <</if>>
<<if $sadako is true>> <<set $smStage to 7>> <</if>><img src="IMG\ship.png" />
<div style="text-align: center;">Xal’Rynor is the <n1>pinnacle of Zenthari technology</n1> - a living machine that doesn’t just follow commands, it understands them. It breathes, it calculates, it decides - the perfect companion for a hunt among the stars.</div> <div style="display:flex; justify-content:center; gap:10px; margin-top:10px; flex-wrap:wrap;"><a data-passage="Bridge" class="link-internal link-image">
<img src="IMG/1/icon1.png" alt="Bridge" style="width:150px;">
</a>
<a data-passage="Lab" class="link-internal link-image">
<img src="IMG/1/icon2.png" alt="Lab" style="width:150px;">
</a>
<a data-passage="Cruw" class="link-internal link-image">
<img src="IMG/1/icon3.png" alt="Cruw" style="width:150px;">
</a>
<a data-passage="Cell" class="link-internal link-image">
<img src="IMG/1/icon4.png" alt="Cell" style="width:150px;">
</a>
<a data-passage="Cargo" class="link-internal link-image">
<img src="IMG/1/icon5.png" alt="Cargo" style="width:150px;">
</a></div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG\Tutorial\tutorial.png" />
<div style="background-color:#000; color:#25737d; font-family:'Courier New', monospace; padding:16px; border:2px solid #25737d; max-width:800px; margin:auto; line-height:1.3; font-size:15px;">
<b>Target Species:</b> <i>Centaurus Sapiens</i> (commonly: Centaur)<br>
<b>Status:</b> <n3>EXTINCT</n3><br>
<b>Reproduction Feasibility:</b> POSSIBLE<br>
<b>Required Genetic Components:</b><br>
– <i>Humanoid</i> (94.7% compatibility)<br>
– <i>Equus ferus caballus(Horse)</i> (Equine genome, 91.2% structural integrity)<br>
<b>Required Lifeforms for Base Cell Extraction:</b><br>
➤ Location: Nebulon Veil Cluster / <span style="color:#d64141;">Object Map: 9999</span> / Δ-plane<br>
</div>
It seems your very first assignment already presents a challenge. The requested lifeform - <n1>the centaur</n1> - is listed as an <n1>extinct species</n1> in the archives. But there’s no need to panic. This species can be resurrected, provided you gather the required genetic components. Your first step is to locate the creatures whose DNA is compatible with the reconstruction process. Go to the <n3>9999</n3> object sector. Head to the Bridge and [[begin your exploration.|Ship]]
<<if $kentaur is true>> <<goto "Tutorial2">><</if>> <<set $codeNum to 9900>><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\lab.png" />
This facility is where <n1>genetic experiments, DNA merging, and the synthesis of extinct or entirely new species take place.</n1> Every step of the process is overseen by precise algorithms, ensuring maximum efficiency and scientific accuracy. This chamber stands as one of the central pillars of Zenthari scientific excellence.
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<a data-passage="humsub" class="link-internal link-image">
<img src="IMG\humsub.png" alt="humsub" style="width: 300px;">
</a>
<a data-passage="special" class="link-internal link-image">
<img src="IMG\special.png" alt="special" style="width: 300px;">
</a>
<a data-passage="hibrid" class="link-internal link-image">
<img src="IMG\hibrid.png" alt="hibrid" style="width: 300px;">
</a>
</div>
<div style="text-align: center;">[[Back|Ship]]</div>
<<if $human is 0>> <<set $humanoid to false>> <</if>><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>> <<if $subship is true>><<goto "subship">><</if>>
<<if $minoStage is 3>> <<goto "bigww">><</if>><<set _answer = String($codeNum).padStart(4, "0")>>
<<if Story.has(_answer)>>
<<goto _answer>>
<</if>>
<img src="IMG\bridge2.png" />
<div style="text-align: center;">
<n2>An error occurred before initiating hyperspace jump.</n2>
The specified coordinates do not correspond to any known planet, star, or system.
Please try entering a different set of coordinates.
</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.jumpSound is undefined>><<run setup.jumpSound = new Audio("music/jump.mp3")>><<run setup.jumpSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.jumpSound.play().catch(()=>{})>>
<img src="IMG\1\0000.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0000 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+87 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A superheated volcanic planet with active magma flows and toxic gas clouds. No surface life has been detected, and extreme heat renders the terrain uninhabitable without advanced shielding technology.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if $tutorial is true>>There is no trace of the <n1>target lifeform on this planet</n1> - in fact, no signs of life at all. There is no reason to remain here. It is advisable to continue your search elsewhere. <</if>>
<<set $lastvisit to "0000">><img src="IMG\1\0001.png" />
<div style="border: 2px solid #25737d; padding: 10px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left;">
<b>OBJECT ID:</b> <span style="color:#d64141;">9999</span>
<b>DESIGNATION:</b> <span style="text-transform: uppercase;">Velthara Prime</span>
<b>STATUS:</b> Habitable
<b>ENVIRONMENT:</b> Atmosphere: nitrogen-oxygen base, stable climate zones, presence of hydrosphere.
<b>VIABILITY:</b> Multiple ecosystems confirmed. Biodiversity classified as HIGH.
<b>NOTES:</b> Inhabited by various intelligent and non-intelligent lifeforms. Planet supports complex biological development and sustained evolution.
<<if $tutorial is true>> <span style="color:#e6c945;"><b>DATA:</b> Target species components (Humanoid and Equine DNA) detected on planet surface.</span> <</if>></div><div style="text-align: center;">[[Enter the planet's atmosphere]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div> <<if $tutorial is true>> As you can see, the <n1>scanner has detected the target lifeforms</n1> on this planet. You're in luck - both species are located in the same area. Descend into the atmosphere and take a closer look. <</if>>
<<if $tutor is true>> <<goto "Ship">> <</if>><img src="IMG\1\0002.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0002 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+63 °C</span>
<b>POPULATION:</b> <span style="color:#fff;"> None </span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A hyper-arid desert planet with a thin and unstable atmosphere. No signs of water or organic matter have been detected. Conditions are entirely unsuitable for sustaining any known form of life.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0002">><img src="IMG\1\0001a.png" />
Whenever the scanner identifies a lifeform on a planet that shows <n1>potential</n1> – whether for observation, containment, or pure entertainment – you’re granted <n1>permission to enter the planet’s atmosphere</n1>. Just like in this case. From this position, you're close enough to execute your plan, yet far enough to remain undetected. But for now, <n1>let's focus on the objective</n1>. Thanks to the ship’s advanced capabilities, you are able to <n1>lift the desired life forms aboard</n1> and <n1>confine them in dedicated containment chambers</n1>. The <n1>lower the combat strength</n1> of a creature, the <n1>easier it is to capture</n1>. Humanoids and the species living on their planets generally lack significant physical strength, making them unable to escape the gravitational beam. However, there are <n1>life forms that cannot be captured</n1> – we’ll discuss those later. For now, <n1>let’s focus on securing the necessary specimens</n1>. You are in a fortunate position: <n1>both life forms are located in the same area</n1>, making this the <n1>perfect opportunity to collect them</n1>.
<div style="text-align: center;"><a data-passage="tutorial1" class="link-internal link-image">
<img src="IMG\grab.png"></a></div>
<img src="IMG\1\0001c.png" />
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PROCESS: UPLINK</b><br>
<span style="color:#28a745;"><b>STATUS: SUCCESS</b></span><br>
<b>SUMMARY:</b> Targeted lifeforms successfully elevated via Graviton Beam.<br>
<b>LOCATION:</b> Subjects secured within BIO-LAB containment chambers.<br>
</div>
You can find them in the <n1>Bio-Lab</n1>. It’s important to know: from planets inhabited by intelligent or technologically advanced species, <n1>you can only abduct a creature once</n1> - to avoid causing panic among the population. But don’t worry - for example, humanoids are not exclusive to planet <n1>9999</n1>, so you’ll still have plenty of opportunities to find other specimens throughout the galaxy. But not so fast - let's go to the [[Bio-Lab first.|Ship]]
<<set $human += 1>>
<<set $humanoid to true>>
<<set $horse to true>>
<<if setup.sugarSound is undefined>>
<<run setup.sugarSound = new Audio("music/sugar.mp3")>>
<<run setup.sugarSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.sugarSound.play().catch(()=>{})>>
<<if $tutorial is true>> <img src="IMG\1\dns.png" />
You've captured your first two lifeforms. The first step is complete. But now comes the part no one prepared you for. The next task: <n1>DNA synthesis</n1>. You must combine the two. How? That’s where <n1>Xal’Rynor</n1> comes in - the ship’s onboard AI, carrying every fragment of knowledge the Zenthari have ever uncovered, including the hidden protocols on organic reproduction. To your kind, reproduction is a mechanical process: embryos created in labs, nurtured under precise control. But <n1>humanoids… reproduce differently</n1>. According to Xal’Rynor’s database, their process is biological, variable, and often species-specific. The critical question remains: <n1>can this process be applied across different species?</n1> There’s only one way to find out: [[run the test.]]
<<else>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\breed1.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PROCESS: SYNTHESIS</b><br>
<span style="color:#28a745;">STATUS: SUCCESS</span><br>
<b>RESULT:</b> DNA fusion successful. Hybrid organism created with stable morphology.<br>
<b>TRAITS:</b> Enhanced cognitive processing, increased physical strength, and cross-species adaptability.<br>
<span style="color: #e6b800;"><b>TEST OBSERVATION:</b> Neural synchronization between Humanoid and Equus ferus caballus indicates optimal compatibility. Subject exhibits cooperative behavior and signs of emergent intelligence.</span>
</div>
<img src="IMG\1\0001d.png" />
As you can see, DNA synthesis has been successfully completed. The resulting embryo has been transferred to the Incubation Chamber, where the cell-enrichment mechanism accelerates fetal development. Thanks to this process, a fully matured specimen will be available in a short time. With the newly created species at your disposal. Fulfill your first assigned order by [[selecting the Order menu.|humsub]] <</if>>
<<set $kentaur to true>>
<<set $centaur += 1>>
<img src="IMG\Tutorial\siker.png" />
You have fulfilled the guild’s request: the target species has been successfully revived. Delivery is not required, so the specimen remains in your care for further observation and experimentation. With this, our tutorial mission is nearing its end. However, before I let go of your “hand” and grant you the freedom of exploration, there is one final stop - proceed to the <n1>8888</n1> [[Object Sector.|Ship]]
<<set $codeNum to 8880>><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\1\BBBB.png" />
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PLANET CLASS:</b> DELTA-TOX<br>
<b>ENVIRONMENTAL STATUS:</b> Critically contaminated – extreme radiation levels detected across entire planetary surface.<br>
<b>HAZARD LEVEL:</b> Severe. Prolonged exposure results in rapid cellular degradation.<br>
<b>INHABITANTS:</b> Present. Native lifeforms have undergone extensive mutation due to high gamma radiation levels.<br>
<b>RESEARCH NOTE:</b> Genetic instability detected. Unique mutagenic profiles may present rare synthesis opportunities under controlled containment.
</div>
Although the heavily mutated lifeforms on this planet are not among the Guild's active collection orders, you decide not to initiate collection. However, you choose to enter the planet’s atmosphere regardless - <n3>during the Centaur synthesis, you observed unusual neural activity in the equine brain.</n3> This anomaly has sparked an idea worth exploring.
<div style="text-align: center;">[[Enter the planet's atmosphere.]]</div>
<<if $tutor is true>> <<goto "Ship">> <</if>><img src="IMG\1\BBBBa.png" />
Your goal was to determine whether <n1>humanoid physical characteristics trigger similar neural activity in other lifeforms.</n1> Using the Graviton Beam, you deploy the humanoid specimen to the planet’s surface to observe how an <n1>alien creature responds to its presence.</n1> Also, to find out what causes the <n1>"pleasure"</n1> that emanated from the humanoid body during the previous test.
<div style="text-align: center;">[[Send a humanoid to the planet's surface|tutorial2]]</div>The creature aggressively attacks the unknown humanoid. However, when it catches her, it does not kill her. Neurons in its brain activate similar to those of a horse. These brain processes are responsible for the <n1>mating instinct.</n1>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ftoy1.mp4" type="video/mp4">
</video>
@@ <div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>FIELD TEST: EXPOSURE RESPONSE</b><br>
<span style="color:#d64141;"><b>RESULT:</b> FAILURE</span><br>
<b>OBSERVATION:</b> Humanoid subject exposed to extreme levels of radiation.<br>
<b>CONDITION:</b> Severe internal organ damage sustained. Retrieval not possible.<br>
<span style="color:#d64141;"><b>STATUS:</b> Subject deceased.</span>
</div> The test results in the death of the Humanoid subject. However, the hypothesis is confirmed: other lifeforms react in a similar way to the horse. This phenomenon is most likely linked to the physical attributes of the Humanoid. You decide to conduct similar experiments in the future - <n1>not just out of scientific habit, but because you're genuinely curious about the causes behind these reactions, and because the process itself entertains you</n1>. After all, your species was engineered for one purpose: to seek experiences that [[banish boredom]]
<<set $human -= 1>>
<<set $humanoid to false>><img src="IMG\1\tutorialend.png" />
You’ve reached the end of the tutorial. Let’s briefly summarize what you need to know - then I’ll finally shut up and vanish so you can enjoy unrestricted exploration.
<img src="IMG\Tutorial\1.png" />
First, look to your left and check out these two important buttons.
🔹 The <n1>Order</n1> menu shows the creatures you need to capture. Here you’ll find detailed information about them and can track the progress of related missions.
🔹 The <n1>Starlog</n1> menu highlights key planets and space objects. These are important locations for your missions - some of them you’ll need to visit multiple times.
<img src="IMG\Tutorial\2.png" />
This is the <n1>Galactic Map.</n1> You’ve seen it before, but let’s quickly go over how it works. You can enter coordinates using the <n1>WASD</n1> keys, the <n1>arrow keys</n1>, your <n1>mouse,</n1> or the buttons next to the display. When you're ready to travel, press <n1>ENTER,</n1>or click on the <n1>HYPERSPACE JUMP,</n1> button. The buttons also respond to being held down - perfect for speeding things up. The galactic map remembers your last entered coordinates and <n1>will glow if you input a location you've already visited.</n1> If you ever get stuck due to a bug, or you have nothing left to do on the planet, press Ctrl to immediately return to the ship’s bridge.
⚠️ Warning: Use this only when necessary. Exiting a mission in progress may cause irreversible errors.
<img src="IMG\1\0003.png" />
You might notice something floating next to the planet - <n3>that’s a collectible item.</n3> It can appear anywhere in the galaxy, so keep your eyes open. <n3>Use your mouse to pick it up.</n3> The first one is on planet <n3>0003</n3> - perfect spot to try how it works.
<div style="text-align: center;"><a data-passage="Ship" class="link-internal link-image">
<img src="IMG\enjoy.png"></a></div>
<<set $tutorial to false>>
<<set $tutbridge to false>>
<<set $tutor to true>>
<<set $codeNum to 0>><img src="IMG\1\a0001.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0001 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+24 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Dominant humanoid species – widespread</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The atmosphere is oxygen-rich and suitable for standard respiration. The surface is densely populated by a dominant humanoid species. Planet deemed suitable for humanoid harvesting operations.</span></div>
<<if $human1 is true>> <div style="text-align: center;"> <a data-passage="1human" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0001">><img src="IMG\1\map.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>SCAN RESULT</b>
<b>LOCATION LOCKED:</b> <span style="color:#fff;">Humanoid presence confirmed and pinpointed</span>
<b>DETECTED UNITS:</b> <span style="color:#fff;">1 humanoid</span>
<b>CAPTURE PROBABILITY:</b> <span style="color:#fff;">100%</span>
<b>NOTE:</b> <span style="color:#fff;">Hormonal activity observed during DNA synthesis – analysis possible.</span></div>The choice is yours: use the <n3>graviton beam</n3> to capture the humanoid immediately or study the target first using <n3>mind control</n3>.<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;"><a data-passage="1humana" class="link-internal link-image">
<img src="IMG/control.png" alt="1humana" style="width: 300px;">
</a><a data-passage="Grab" class="link-internal link-image">
<img src="IMG/grab.png" alt="Grab" style="width: 300px;">
</a>
</div>
<<set $human1 to false>>
<<set $human += 1>>
<<set $humanoid to true>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\breed4.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PROCESS: SYNTHESIS</b><br>
<b>DNA SEQUENCES:</b> HUMANOID + WEREWOLF<br>
<span style="color:#d64141;">STATUS: FAILURE</span><br>
<b>REASON:</b> Despite genetic similarities, the two DNA strands exhibit critical incompatibilities during fusion.<br>
<b>RESULT:</b> Cellular rejection detected at early stages of synthesis. No viable embryo formed.<br>
<span style="color: #e6b800;"><b>TEST OBSERVATION:</b> While structural traits align, key genome markers conflict, indicating that secondary hybridization between closely related crossbreeds is genetically unstable.</span>
</div>
<div style="text-align: center;">[[Back|humsub]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\breed3.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PROCESS: SYNTHESIS</b><br>
<b>DNA SEQUENCES:</b> HUMANOID + HORSEHUMAN<br>
<span style="color:#d64141;">STATUS: FAILURE</span><br>
<b>REASON:</b> Despite genetic similarities, the two DNA strands exhibit critical incompatibilities during fusion.<br>
<b>RESULT:</b> Cellular rejection detected at early stages of synthesis. No viable embryo formed.<br>
<span style="color: #e6b800;"><b>TEST OBSERVATION:</b> While structural traits align, key genome markers conflict, indicating that secondary hybridization between closely related crossbreeds is genetically unstable.</span>
</div>
<div style="text-align: center;">[[Back|humsub]]</div>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\breed2.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PROCESS: SYNTHESIS</b><br>
<b>DNA SEQUENCES:</b> HUMANOID + CENTAUR<br>
<span style="color:#28a745;">STATUS: SUCCESS</span><br>
<b>RESULT:</b> <n1>Hybrid organism successfully created.</n1><br>
<b>SPECIES NAME:</b> <n3>Horse-Human</n3><br>
<b>DESCRIPTION:</b> A reverse form of the centaur. The subject possesses a muscular, humanoid body with the head and facial structure of a horse. Strength and stamina exceed standard humanoid parameters. Fully stable and viable for field deployment or further experimentation.<br>
</div>
<div style="text-align: center;">[[Back|humsub]]</div>
<<set $horsehuman to true>>
<img src="IMG\1\werewolf1.png" />
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>MISSION: CAPTURE – CLASSIFIED</b><br>
<span style="color:#e53935;">TARGET: Werewolf</span><br>
<b>ZONE:</b> <span style="color: #e6b800;">Sector 0000–0020</span><br>
<b>TRAITS:</b> Highly developed musculature, aggressive behavior, rapid regeneration.<br>
<b>NOTES:</b> Must be physically exhausted before capture. Mental shielding prevents neural override. </div>
<div style="text-align: center; font-size: 28px; color: #25737d; font-weight: bold;"> Mission status </div>
<div style="text-align: center;"><<switch $wwStage>>
<<case 1>>Search for the creature in sector <n1>0000–0020.</n1><<case 2>><n3>Find a creature</n3> capable of exhausting the Werewolf.<<case 3>><n2>Sucubus</n2> may help you capture the Werewolf.<<case 4>>Return to planet number <n1>0019.</n1><<case 5>><img src="IMG\1\captured.png" />
<</switch>></div>
<div style="text-align: center;">[[Back|Quests]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\1\0019.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0019 </span><b>ATMOSPHERIC STATUS:</b> <span style="color:#fff;">Stable, oxygen-rich – cloud activity detected</span>
<b>GEOGRAPHY:</b> <span style="color:#fff;">Dominated by vast landmasses, minimal ocean coverage</span>
<b>BIOME DISTRIBUTION:</b> <span style="color:#fff;">Arid plateaus, dry valleys, isolated forest zones</span>
<b>OBSERVATION LOG:</b> <span style="color:#fff;">Traces of advanced terrestrial fauna confirmed</span>
<b>KNOWN LIFEFORM:</b> <span style="color:#e53935;">Werewolf</span>
<b>NOTES:</b> <span style="color:#fff;">Subject presence confirmed across Sector 0000–0020. Native conditions favor nocturnal mobility and territorial aggression.</span></div>
<div style="text-align: center;"><a data-passage="wwolf" class="link-internal link-image"> <img src="IMG\grab.png"></a></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $b019 to true>>
<<set $lastvisit to "0019">><img src="IMG\1\gravitonerror.png" />
<n2>The werewolf possesses extreme physical strength</n2> and breaks free from the gravitational field. You must exhaust it first. Combat is not an option - you don’t want it to be harmed. Instead, you decide to tire it out by other means. You will need a humanoid.
<div style="text-align: center;"> <<if $sucubus is true>> [[Send a sucubus to the planet's surface]] <</if>> </div>
<div style="text-align: center;"> <<if $human >= 1>> [[Send a humanoid to the planet's surface]] <<else>> <n2>Get a humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.wolfSound is undefined>><<run setup.wolfSound = new Audio("music/wolf.mp3")>><<run setup.wolfSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.wolfSound.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ftoy2.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>SCF REPORT:</b> Attempt to exhaust the werewolf has failed.<br>
<span style="color: #e53935;"><b>The humanoid did not survive the encounter.</b></span><br>
<span style="color: #e6b800; font-size: 16px;"><b>Remaining humanoids available for retry:</b> <<= $human >></span>
</div>
<div style="text-align: center;"> <<if $sucubus is true>> [[Send a sucubus to the planet's surface]] <</if>> </div>
<div style="text-align: center;"><<if $human >= 1>> [[Try again]] or [[Search for a lifeform capable of surviving|Bridge]] <<else>> <n2>Obtain a humanoid or a lifeform capable of surviving</n2> <</if>> </div>
<div style="text-align: center;">[[Back|0019]]</div>
<<set $human -= 1>>
<<set $wwStage to 2>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ftoy3.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>SCF REPORT:</b> Attempt to exhaust the werewolf has failed.<br>
<span style="color: #e53935;"><b>The humanoid did not survive the encounter.</b></span><br>
<span style="color: #e6b800; font-size: 16px;"><b>Remaining humanoids available for retry:</b> <<= $human >></span>
</div>
<div style="text-align: center;"> <<if $sucubus is true>> [[Send a sucubus to the planet's surface]] <</if>> </div>
<div style="text-align: center;"><<if $human >= 1>> [[Try again|Send a humanoid to the planet's surface]] or [[Search for a lifeform capable of surviving|Ship]] <<else>> <n2>Obtain a humanoid or a lifeform capable of surviving</n2> <</if>> </div>
<div style="text-align: center;">[[Back|0019]]</div>
<<set $human -= 1>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ftoy4.mp4" type="video/mp4">
</video>
@@
Thanks to her extraordinary adaptability, the <n1>Succubus has no difficulty handling the werewolf’s physical strength, aggression, or stamina.</n1> Her own endurance far surpasses that of the creature. In fact, neural scans show she experiences the encounter as casual entertainment. By this point, a humanoid subject would have suffered serious injuries - if not total physical collapse. For the sucubus, the penetration of the <n3>“knot”</n3> was not a problem.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ftoy5.mp4" type="video/mp4">
</video>
@@ Her presence begins to attract additional werewolf specimens. However, this does not alter the outcome - none of them pose a threat or challenge to her in any capacity. <div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b style="color: #28a745;">SCF REPORT – EXTRACTION PHASE</b><br>
<b>Target fatigue status:</b> Successful<br>
<b>Graviton beam deployment:</b> Successful<br>
<b>Captured specimens:</b> <n3>3 werewolf-class entities</n3>
</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $werewolf to true>>
<<set $wwStage to 5>><img src="IMG\1\0026.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0026 </span>
<b>TEMPERATURE:</b> <span style="color:#fff;">N/A (scanner malfunction)</span>
<b>POPULATION:</b> <span style="color:#fff;">Life signatures detected (non-localized)</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Scanner malfunction near planetary orbit. Life signatures detected but cannot be localized. Potential habitat of demonic entities. Approach with extreme caution.</span></div>
<<if $succubus1 is true>><div style="text-align: center;"> <a data-passage="Sucubus" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $b026 to true>>
<<set $lastvisit to "0026">><img src="IMG\1\0026b.png" />
You enter the planet's atmosphere. The world below is tainted - corrupted by something unnatural. The land is twisted, and life seems almost entirely absent. Suddenly, your sensors react: a single demonic lifeform. A <n2>Succubus.</n2> You know mind control is useless against demonic entities. Their innate teleportation abilities render the graviton beam ineffective as well. And yet, the SCF database suggests her abilities might aid your mission. You decide to speak with her.
<img src="IMG\1\0026a.png" />
You also know this: when a <n2>demon agrees to a pact, their word binds them.</n2> A rare opportunity. If you succeed in forming an agreement, cooperation is guaranteed. Fortunately, the Succubus desires something: she seeks a creature she could not locate on her own. She names it - an ancient, cephalopod-like entity known as <n2>Xal'tath'uun.</n2> According to the archives, Xal'tath'uun may reside somewhere within the <n2>0030 - 0040</n2> spatial sectors. If you find it… the demon's assistance will be yours.
<div style="text-align: center;"> <n2>Provide the entity's location coordinates.</n2>
<<textbox "$answer" "">>
[[Give her the coordinates!->check_answer1]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $wwStage to 3>>
<<if setup.laugSound is undefined>>
<<run setup.laugSound = new Audio("music/laug.mp3")>>
<<run setup.laugSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.laugSound.play().catch(()=>{})>><img src="IMG\1\0026c.png" />
<<nobr>>
<<set _answer to $answer.trim().toLowerCase()>>
<<switch _answer>>
<<case "0039">>
<<goto "0026a">>
<<break>>
<<default>>
The Succubus vanishes in a blink – then reappears just as suddenly, her expression furious. It seems you gave her the wrong coordinates. You’d best not deceive her again. You might not get [[another chance.|Sucubus]]
<</switch>>
<</nobr>>
<img src="IMG\1\0026d.png" />
The Succubus vanishes in a blink - then reappears just as suddenly, <n2>a pleased smile on her face.</n2> It seems you found exactly what she was looking for. You can count on her help now - all you need to do is call her by name, and she will appear. Until then, she’s off to have a little fun [[on planet 0039.|0026]]
<<set $sucubus to true>>
<<set $succubus1 to false>>
<<set $wwStage to 4>><img src="IMG\1\0039.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0039 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+33 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Numerous parasitic and predatory organisms; rare higher-order entity detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The planet is a vast expanse of swamps and marshes, shrouded in thick fog and perpetual humidity. Terrain is waterlogged with decaying vegetation and deep bog fields. Higher-order lifeform identified: <n3>Xal'tath'uun</n3>, an ancient cephalopod-like entity, rarely observed.</span></div>
<<if $sucubus is true>> <div style="text-align: center;"><a data-passage="Sucubus1" class="link-internal link-image"><img src="IMG/enter.png" style="max-height: 150px; height: auto; width: auto;"></a></div><<else>><div style="text-align: center;"><<if $human >= 1>>[[Send a humanoid to the planet's surface|tentacle1]]<</if>></div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0039">>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\tentacle1.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b style="color: #28a745;">SCF LOG: INTERACTION PROTOCOL – XAL'TATH'UUN & HUMANOID</b><br>
<b>Observation Context:</b> Controlled behavioral encounter initiated.<br>
Xal'tath'uun approached the humanoid with evident curiosity. The subject displayed visible signs of fear and attempted to flee.<br>
To prevent escape, a neural override was applied – mind-calming protocol successful.<br>
Following stabilization, Xal'tath'uun extended several tendrils and slowly wrapped them around the humanoid’s limbs, initiating close-contact sensory mapping.<br>
<b style="color: #d64141;">Status: Non-aggressive. Monitoring continues. </b> </div>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\tentacle2.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b style="color: #28a745;">SCF LOG: INTERACTION PROTOCOL – XAL'TATH'UUN & HUMANOID</b><br>
Phase two initiated: the examination has concluded - interaction escalates.<br>
Neuronal activity within Xal'tath'uun's cortex spikes sharply.<br>
Tendrils begin to apply significantly increased force to the humanoid’s limbs and torso. <n3>Tentacles penetrate the humanoid body</n3><br> </div>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\tentacle3.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b style="color: #28a745;">SCF LOG: INTERACTION PROTOCOL – XAL'TATH'UUN & HUMANOID</b><br>
<b style="color: #d64141;">Status: The humanoid is killed on contact. Suffers severe internal damage from the Xal'tath'uun's tentacles.</b> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human -= 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\suctec.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b style="color: #28a745;">SCF LOG: BEHAVIORAL SCAN – SUCCUBUS ENTITY</b><br>
<b>Observation Context:</b> Neurochemical and cortical monitoring initiated.<br>
Real-time scans of cerebral activity indicate the subject is experiencing a <span style="color:#66ccff;">positive emotional state</span>.<br>
No pain response detected — <span style="color:#00bcd4;">neural oscillations remain stable and non-reactive</span>.<br>
Endocrine analysis confirms elevated levels of <span style="color:#e6b800;">pleasure-associated neurohormones</span> within the subject's system.<br>
<b style="color: #00bcd4;">Status:</b> Psychophysiological state: Relaxed. Subject is fully cooperative.
</div>
<div style="text-align: center;">[[Back|Bridge]]</div><<if $pics1 is true>><div class="hover-image-wrapper"><img src="IMG/1/0003.png" class="main-image" alt="comics"><a data-passage="0003a" class="hover-link link-internal link-image"><img src="IMG/1/0003a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\00030.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0003 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+4 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Aquatic lifeforms only</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The planet's surface is covered entirely by a global ocean with no detectable landmasses. Environmental scans reveal the presence of simple aquatic organisms. Biological complexity is low, and no significant specimens have been identified.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0003">><img src="IMG\1\0004.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0004 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+26 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Multiple higher-order species present</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The biosphere supports a wide variety of advanced life forms, distributed across the continent and marine regions. Atmospheric and environmental conditions are ideal for complex ecosystems.</span></div>
<<if $human2 is true>><div style="text-align: center;"> <a data-passage="0004a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0004">><img src="IMG\1\0004a.png" />
Your sensors detect a cluster of lifeforms. Upon entering the planet’s atmosphere, you immediately head to the source. A humanoid warrior is engaged in combat with lizard-kobolds. A primitive fight - at least to you. Primitive and dull. The kobold-lizards hold no value for your mission. But the humanoid? You need them. Now, you must decide: will you extract the humanoid using a <n3>graviton beam</n3> or will you toy with the scene <n3>using mind control?</n3>
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<a data-passage="human2" class="link-internal link-image">
<img src="IMG/control.png" alt="human2" style="width: 300px;">
</a>
<a data-passage="2human" class="link-internal link-image">
<img src="IMG/grab.png" alt="2human" style="width: 300px;">
</a>
</div>
<<if setup.fightSound is undefined>>
<<run setup.fightSound = new Audio("music/fight.mp3")>>
<<run setup.fightSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.fightSound.play().catch(()=>{})>>
<<set $human2 to false>>
<<set $human += 1>>
<<set $humanoid to true>><img src="IMG\1\0001e.png" />
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PROCESS: UPLINK</b><br>
<span style="color:#28a745;"><b>STATUS: SUCCESS</b></span><br>
<b>SUMMARY:</b> Targeted lifeform successfully elevated via Graviton Beam.<br>
<b>LOCATION:</b> Subject secured within BIO-LAB<br>
</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.sugarSound is undefined>>
<<run setup.sugarSound = new Audio("music/sugar.mp3")>>
<<run setup.sugarSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.sugarSound.play().catch(()=>{})>><img src="IMG\1\0001b.png" />
You infiltrate the humanoid’s mind within moments. Now, certain regions of the brain are under your influence and control. You suppress her hatred toward the kobold-creatures and erase all fear. She ceases her attack, drops her weapon to the ground, removes her armor, and sits down calmly. The kobolds freeze for a moment - baffled by the sudden change. Their enemy now sits peacefully before them, unarmed and exposed. You seize this opportunity to slip into their minds as well. A brief surge of neural stimulation is all it takes - you activate their neurons with subtle precision.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ftoy6.mp4" type="video/mp4">
</video>
@@
From this point on, you simply lean back and watch your creation unfold - as desire and chaos slowly take over. The blend of the two offers a spectacle that amuses you - boredom is no longer a concern. When you decide the time is right, you deploy the graviton beam and extract the humanoid from the crowd. Your experiment is complete, and the humanoid [[has been captured.|Bridge]]
<<set $mindIdx = (typeof $mindIdx === "number") ? (($mindIdx % 4) + 1) : 1>>
<<set _roll = $mindIdx>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind1.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind2.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind3.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind4.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 5>>
<!-- üres, nem indul semmi -->
<</switch>>
<img src="IMG\1\0005.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0005 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+58 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The planet's atmosphere is saturated with highly toxic gases, rendering it completely uninhabitable. No biological presence has been detected on the surface or in orbit. Isolation protocols are recommended due to environmental volatility and potential airborne contaminants.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0005">><img src="IMG\1\0006.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0006 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+22 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Dominant humanoid species</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The planet features a fully breathable, oxygen-rich atmosphere, supporting unassisted respiration. A single dominant humanoid species has developed into the ruling civilization. The planet is encircled by a prominent ring system, visible from the surface and stable in orbit.</span></div>
<<if $human3 is true>><div style="text-align: center;"> <a data-passage="0006a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0006">>As your ship glides silently beneath the planet’s cloud cover, the radar suddenly detects a lone humanoid. You immediately focus all sensors on the target and descend to a lower altitude. Moments later, you catch sight of the figure with your own eyes. You land at a safe distance and step onto the surface, approaching cautiously. This time, you decide not to miss the opportunity - you want to observe the humanoid up close. For a single target like this, you don’t need your ship’s equipment. Your mind control capabilities are fully functional even without technical assistance.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\meet1.mp4" type="video/mp4">
</video>
@@
The humanoid spots you - and fear floods her expression. For a moment, she seems frozen, paralyzed by shock. But that moment is all you need. You slip into her mind with ease. She turns and tries to flee, but it’s already too late. She is under your control now. With her resistance subdued, nothing stands in the way of closer examination. Structurally, her form is similar to yours, yet the differences are clear. Compared to you, she is smaller, more delicate. The shape of her head, the organs used for communication and nourishment - all distinctly different. But what’s most intriguing is her physique: it draws your gaze in a way you didn’t expect. It captures your curiosity - curiosity you haven’t felt in a long time. For a Zenthari, existence has long since grown dull. Yet this primitive, seemingly simple lifeform... she holds surprises. It’s time for a more intimate investigation.
@@.vid;
<video id="meetVideo" controls autoplay loop>
<source src="IMG/VID/meet2.mp4" type="video/mp4">
</video>
@@
Your curiosity now turns inward - not to her body, but to the mind that drives it. You wish to understand the complexity of her neural structure, the emotional currents that power different regions of her brain. Though she remains under your mental control, without your ship’s enhanced sensors, you cannot observe her cognitive functions from the outside. You must get closer - in the most literal sense. You must enter her mind directly. Your tendrils, the Zenthari’s sixth sensory organ, coil gently but firmly around her head. With precision and patience, they seek a path inside. Eventually, they find one. Through her mouth, your tendrils slip into her body - a soft, invasive connection - forming the perfect neural link.
<img src="IMG\1\0006a.png" />
The connection stabilizes - but you do not complete your examination. Something interrupts your focus. <n1>A sensation, unfamiliar and uninvited, begins to radiate from deep within your own body.</n1> You hesitate. Is it coming from her? The thought lingers like static in your mind. Could this primitive creature be... affecting you? Before the sensation can take hold - before you allow yourself to fully experience it - you sever the link. The humanoid collapses briefly, dazed but unharmed. You gather her for extraction. The analysis will continue later. When you're ready. And when you're certain... [[that you remain in control.|Bridge]]
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind.mp3")>>
<<run setup.mindSound.volume = 0.2>>
<</if>>
<<run setup.mindSound.play().catch(()=>{})>>
<<set $human3 to false>>
<<set $human += 1>>
<<set $humanoid to true>>
<<script>>
document.addEventListener("DOMContentLoaded", function() {
const video = document.getElementById("meetVideo");
if (video) {
video.volume = 0.4;
}
});
<</script>>
<img src="IMG\1\0007.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0007 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+191 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A massive gas giant with a high-density gaseous envelope and no detectable solid surface. Environmental scans show no lifeforms. The planet exhibits extreme atmospheric pressure and volatile electromagnetic disturbances. Surface entry is not recommended under any circumstances.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0007">><img src="IMG\1\0008.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0008 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+37 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">An <n1>unknown-origin, colossal cylindrical object</n1> drifting in space. A continuous stream of <n1>eternal matter</n1> leaks from its fractured hull, vanishing directly into the void. The purpose – or consequence – remains a mystery.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0008">><img src="IMG\1\0009.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0009 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+49 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Mutated lifeforms only – no original humanoid presence remains</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Once home to an advanced humanoid civilization, the planet is now a post-nuclear wasteland. Global devastation was caused by full-scale thermonuclear war. Mutated organisms persist in severely irradiated environments, exhibiting extreme genetic instability. The surface is deemed uninhabitable by any known standard.</span></div>
<div style="text-align: center;"> <a data-passage="0009a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0009">><img src="IMG\1\0009a.png" />
Silhouettes of crumbling buildings emerge through the thick curtain of dust. Scanners identify multiple mutant lifeforms - their twisted bodies emit dangerously high levels of radiation. Then, you spot a lone specimen. It stands motionless… until it suddenly reacts to the noise of your craft. <n1>Curiosity stirs within you once again:</n1> What kind of interaction might occur between these mutants and humanoids? Will they respond the same way other species do? Or does this planet conceal something different? <n1>A test could provide answers - but at a cost.</n1> Gamma-level radiation would kill any unprotected humanoid within minutes.
<div style="text-align: center;"> <<if $human >= 1>> [[Send a humanoid to the planet's surface|0009b]] <<else>> <n2>Get a humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.roarSound is undefined>><<run setup.roarSound = new Audio("music/roar.mp3")>><<run setup.roarSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.roarSound.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ftoy7.mp4" type="video/mp4">
</video>
@@
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>INTERACTION PROTOCOL</b>
<b>SUBJECT:</b> <span style="color:#fff;"><n3>Mutated native lifeform – Class: Type-B Predator</n3></span>
<b>SEQUENCE LOG:</b> <span style="color:#fff;"><br>
• Mutant cautiously approaches the humanoid.<br>
• Cause: Visual analysis suggests the creature has never encountered a humanoid before. Human presence on planet: extinct.<br>
• Threat evaluation complete: Subject deems the humanoid non-hostile.<br>
• Approach phase initiated. Mutant engages.<br>
• Claws tear through protective suit. Minor biological exposure detected.<br>
• Abrupt neural shift observed — brain activity aligns with known predatory stimulation patterns.</span><br>
<b>STATUS:</b> <span style="color:#fff;">Humanoid left behind. Interaction survived.</span>
<b>NOTE:</b> <span style="color:#fff;"><n2>Radiation exposure will result in fatality within minutes.</n2></span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human -= 1>><img src="IMG\1\0020.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0020 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">???</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">100% toxic ocean coverage with no solid land detected. Atmosphere is corrosive and radioactive. Bioluminescent lifeforms intermittently observed, but the chemical composition of the water is fatal to all known lifeforms.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0020">><img src="IMG\1\0012.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0012 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+29 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Scattered humanoid survivors – population near extinction</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The surface exhibits extensive urban decay with partially intact city structures. Biosignatures are critically diminished due to a global viral outbreak that eradicated most of the native humanoid population. A small number of scattered survivors remain. The planet is currently experiencing an active extinction-phase event.</span></div>
<div style="text-align: center;"> <a data-passage="0012a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0012">><img src="IMG\1\0012a.png" />
You spot a group of humanoids on the run - infected are closing in fast behind them. A quick scan from your ship confirms the worst. Result: all subjects are infected. <n1>The virus is already present in their bloodstream.</n1> Extraction is not an option - bringing them aboard would risk infecting every other specimen on the ship. As tempting as the opportunity is, you can’t take the risk. You begin preparing to move on... But then, you notice a woman. She breaks away from the group and rushes into a crumbling building, trying to escape one of the infected. It’s the wrong choice. <n2>A dead end.</n2> There’s no way out. The infected catches her.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ftoy8.mp4" type="video/mp4">
</video>
@@
There is no chance of escape. Although your scan confirmed the infection was already present in her system, meaning she would have transformed sooner or later, what’s happening now drastically accelerates the process. <n2>The infected doesn’t kill her</n2> - instead, it injects even more of the virus into her body, far beyond what any biological system could withstand. And it doesn’t stop. It keeps going for long, relentless minutes, working over her like part of [[some twisted ritual.|Bridge]]<img src="IMG\1\0011.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0011 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+50 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>NOTE:</b> <span style="color:#fff;">The planet emits a strange low-frequency rumble.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0011">>
<<if setup.snorSound is undefined>>
<<run setup.snorSound = new Audio("music/snor.mp3")>>
<<run setup.snorSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.snorSound.play().catch(()=>{})>><img src="IMG\1\0010.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0010 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+242 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Planetary disintegration is currently underway. Catastrophic structural collapse has been confirmed following the detonation of the planetary core. The planet is fractured into multiple segments, with molten matter expelled into orbit. No known form of life can survive. Entry is strictly prohibited.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0010">><<if $pics2 is true>><div class="hover-image-wrapper"><img src="IMG/1/0013.png" class="main-image" alt="comics"><a data-passage="0013a" class="hover-link link-internal link-image"><img src="IMG/1/0013a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\00130.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0013 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+61 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The planet’s cracked, arid surface is entirely devoid of atmosphere. No biosignatures have been detected. Geological activity is minimal, and no viable resources are present. Planet is considered scientifically uninteresting and economically irrelevant.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0013">><img src="IMG\1\0014.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0014 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+25 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Advanced humanoid civilization</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The planet possesses a breathable atmosphere and stable climate systems. Its surface features varied terrain suitable for both agriculture and large-scale settlements. Biosignature analysis confirms a widespread and advanced humanoid presence. Planet is officially classified as habitable.</span></div>
<<if $human9 is true>> <div style="text-align: center;"> <a data-passage="9human" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0014">><img src="IMG\1\0015.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0015 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+54 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The planet exhibits a severely unstable magnetic field, resulting in continuous high-intensity electromagnetic storms. Surface scans reveal numerous wrecks suspended in midair due to gravitational anomalies. No biological life is present.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0015">><img src="IMG\1\0017.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0017 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+31 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None detectable</span>
<b>NOTE:</b> <span style="color:#fff;">Surface covered with undulating organic matter – primarily limbs. Strange rhythmic clapping and moaning can be heard without discernible source.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0017">> <<if setup.ghostSound is undefined>>
<<run setup.ghostSound = new Audio("music/ghost.mp3")>>
<<run setup.ghostSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.ghostSound.play().catch(()=>{})>><img src="IMG\1\0016.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0016 </span>
<b>CLASSIFICATION:</b> <span style="color:#fff;">Spacecraft</span>
<b>CREW:</b> <span style="color:#fff;">1 humanoid</span>
<b>PROPULSION:</b> <span style="color:#fff;">High-thrust engines capable of escaping gravitational beam entrapment</span>
<b>DEFENSE SYSTEMS:</b> <span style="color:#fff;">Partial resistance to Zenthari mind-control signals</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">This small, single-crew spacecraft exhibits advanced evasion capabilities. While its shielding resists most external control attempts, Zenthari interference remains a potential threat. Mind control is difficult, but not impossible. Tactical caution advised.</span></div>
<div style="text-align: center;"><<if $human4 is true>>[[Break through the security system!]]<</if>></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0016">>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\code3.mp4" type="video/mp4">
</video>
@@
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0016 </span>
<b>STATUS:</b> <span style="color:#fff;">Defense system compromised</span>
<b>WAVE SUPPRESSOR:</b> <span style="color:#fff;">Offline</span>
<b>MIND CONTROL:</b> <span style="color:#fff;">Signal fully established</span>
<b style="color:#e6b800;">RESULT:</b> <span style="color:#fff;">New humanoid acquired</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human4 to false>>
<<set $human += 1>>
<<set $humanoid to true>>
<<set $mindIdx = (typeof $mindIdx === "number") ? (($mindIdx % 4) + 1) : 1>>
<<set _roll = $mindIdx>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind1.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind2.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind3.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind4.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 5>>
<!-- üres, nem indul semmi -->
<</switch>>
<<puzzle 3 3 "IMG/1/codev1.png" 480 6 "7V93">>
<div style="text-align: center;">You found the <n1>required data.</n1> Now find the <n3>correct path to breach the system</n3> - once you do, the ship will be in your hands.</div>
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG\1\0018.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0018 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−17 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Surface scans reveal the remnants of an ancient, long-extinct civilization. No biological life remains, yet irregular and inexplicable energy fluctuations persist throughout the ruins. The atmosphere carries an unnatural stillness, and instruments have recorded patterns suggestive of spectral or psionic phenomena. The planet is widely regarded as haunted or cursed. Caution advised.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0018">><img src="IMG\1\oni1.png" />
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>Name:</b> <n3>ONI</n3><br>
<b>Type:</b> <n2>Demonic Entity</n2><br>
<b>Habitat:</b> Commonly encountered near humanoid populations.<br>
<b>Summoning:</b> Can be brought forth through arcane rituals.<br>
<b>Containment:</b> Requires sealing via binding sigils to capture.<br>
<b>Location Range:</b> Detected within object-plane <n3>0040–0050.</n3><br></div>
<div style="text-align: center; font-size: 28px; color: #25737d; font-weight: bold;"> Mission status </div>
<div style="text-align: center;"><<switch $oniStage>>
<<case 1>>Search for the creature in sector <n1>0040–0050.</n1><<case 2>>Obtain knowledge about the ONI’s summoning <n3>by capturing Galactic Temples.</n3><<case 3>><n3>You’ll need allies to storm the Cathedral</n3> - perhaps some familiar faces.<<case 4>>Complete the Velgrons’ task - <n3>Catch the thief (0055-0060)</n3><<case 5>>Lead a Velgron army to attack the <n3>Cathedral (0053)</n3><<case 6>>You have the information - <n3>Summon the Oni (0046)</n3><<case 7>><img src="IMG\1\captured.png" /><</switch>></div>
<div style="text-align: center;">[[Back|Quests]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\1\0021.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0021 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+?? °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid species – dominant and widespread</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The atmosphere is oxygen-rich and suitable for standard respiration. The surface supports a widespread humanoid presence. <n3>Planet suitable for humanoid harvesting.</n3></span></div>
<<if $human10 is true>> <div style="text-align: center;"> <a data-passage="10human" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0021">><img src="IMG\1\0022.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0022 </span>
<b>TEMPERATURE:</b> <span style="color:#fff;">N/A (spacecraft)</span>
<b>POPULATION:</b> <span style="color:#fff;">Velgron crew complement (unknown)</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Detected active <n2>Velgron Mothership</n2>. Origin traced to the same star sector as the Zenthari, with a history of long-standing mutual awareness. Power signatures indicate extremely high energy output. Approach with caution.</span></div>
<<if $toltet is true>><div style="text-align: center;">[[Transmitting docking request to Velgron vessel|toltet]]</div><<else>><div style="text-align: center;">[[Transmitting docking request to Velgron vessel]]</div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $b022 to true>>
<<set $lastvisit to "0022">><img src="IMG\1\0022a.png" />
You disembark in the hangar of the Velgron mothership. As your boots echo against the metal floor, it's immediately clear that the ship is far from new. It's a Zenthari model from two generations ago - obsolete by current standards, but still imposing. The Velgrons, despite their immense physical power and fearsome presence, lack the technological expertise to build such vessels themselves. Instead, they purchase decommissioned warships from the Zenthari.
<img src="IMG\1\0022s.png" />
<img src="IMG\1\0022b.png" />
The bond between the two species runs deep, going back to an era when the Zenthari were still carving their name into the galaxy through blood and fire. Back when their technological prowess hadn’t yet reached its current heights, the Velgrons were the perfect mercenary warriors - savage, relentless, and brutally effective. They followed orders without hesitation, feared no enemy, and fought with primal fury. Many of the Zenthari conquests of that age were only possible thanks to Velgron strength. Now, centuries later, that alliance has softened into tradition, yet traces of it remain - like this old mothership, a symbol of trust, passed from one warrior race to another. As you reach the captain’s chamber and step inside, you're met with an unexpected sight... a [[humanoid.]]
<<if setup.menetSound is undefined>>
<<run setup.menetSound = new Audio("music/menet.mp3")>>
<<run setup.menetSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.menetSound.play().catch(()=>{})>>
<<if $temple3a is true>> <<goto "sereg">> <</if>>
<<if $sereg2 is true>> <<goto "sereg2">> <</if>>
<<if $captain is true>> <<goto "captainkuldi">> <</if>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\vergol.mp4" type="video/mp4">
</video>
@@ Vergol, the commander, sat at the center of the chamber on what resembled a throne - though it was no throne, for he was no king, merely the captain of this vessel. And in his lap lay the humanoid, bound in chains. The humanoid moaned softly, but in pain. Nevertheless, she acted. She wasn’t under mind control - the Velgron possess no such abilities. But you can feel the fear radiating from the woman. The fear of death. Perhaps that’s what drives her to act.
<img src="IMG\1\0022v.png" />
<img src="IMG\1\0022c.png" />
Slaves? They came all this way just for that? It seems you’ve underestimated the value of humanoids. Perhaps because you never [[truly knew them.|Bridge]]
<img src="IMG\1\0023.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0023 </span>
<b>TEMPERATURE:</b> <span style="color:#fff;">N/A (anomaly)</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Stable cubic dimension anomaly. Environmental and biological structures adhere strictly to geometric symmetry. Laws of gravity and physics are severely distorted, creating hazardous conditions for exploration.</span></div>
<div style="text-align: center;"> <a data-passage="0023a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0023">>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\0023a.mp4" type="video/mp4">
</video>
@@
As you pass through the planet’s atmosphere, the sight before you defies all imagination. Everything you see is built from sharp angles and precise forms - <n1>cubes, stacked, floating, aligned.</n1> The landscape follows strict lines, as if someone once created this world with a ruler. The trees, the mountains, even the creatures… all conform to the cold rules of geometry. This world is strange. Yet somehow… something familiar creeps in. Because no matter how unusual this dimension may seem, <n1>the shadow of corruption lingers here too.</n1>
<div style="text-align: center;">[[Back|Bridge]]</div><<if $pics15 is true>><img src="IMG\1\0083.png" />
As you fly through the asteroid field, you notice a <n3>small ship</n3> quietly moving, hiding behind the meteors. It conceals itself from the world. The type of vessel is not unfamiliar to you, so you know exactly what it is carrying - <n3>a work of art.</n3> A valuable galactic painting. Perhaps it’s worth taking the time to acquire it.
<div style="text-align: center;">[[Shoot down the spaceship]]</div>
<<else>><img src="IMG\1\00830.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0024 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−156 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A dense and unstable asteroid field drifting across the sector. Constant collisions and shifting debris make navigation highly dangerous. No biosignatures detected. Mining potential remains uncertain due to extreme instability.</span></div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0024">><<if $pics3 is true>><div class="hover-image-wrapper"><img src="IMG/1/0025.png" class="main-image" alt="comics"><a data-passage="0025a" class="hover-link link-internal link-image"><img src="IMG/1/0025a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\00250.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0025 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−128 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Uninhabitable hypersonic storm world. Environment marked by constant supersonic winds, dust cyclones, flash-freeze storms, and high-voltage lightning strikes. Mysterious cyclic flashes detected on the dark side - origin unknown.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0025">><img src="IMG\1\0027.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0027 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+23 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid population detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Habitable terrestrial planet with a stable biosphere. Surface conditions are ideal for sustaining life, and the atmosphere supports widespread humanoid presence.</span></div>
<<if $human5 is true>> <div style="text-align: center;"> <a data-passage="5human" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0027">><img src="IMG\1\0027a.png" />
You’ve locked onto the humanoid - alone, unguarded, with no signs of other life nearby. Their position is perfect: moving in the shadows, far from any watchful eyes. The timing is ideal. You can act swiftly, discreetly, without raising any alarms. The gravitom beam is engaged. No alerts. No resistance. A silent hunt.
<img src="IMG\1\0027b.png" />
Her body is wrapped in the pillar of light, rising slowly until she vanishes into the ship. She’s trapped. As you leave the planet’s atmosphere, distance grants safety. Now begins the examination. Perhaps this time, you’ll finally understand what makes humanoids so different. Perhaps you’ll even feel the strange, unsettling wave of emotion… the same one that other beings across the universe have experienced when [[encountering them.]]
<<if setup.sugarSound is undefined>>
<<run setup.sugarSound = new Audio("music/sugar.mp3")>>
<<run setup.sugarSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.sugarSound.play().catch(()=>{})>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ftoy9.mp4" type="video/mp4">
</video>
@@ Your tentacles wrap around her head, then one of them attaches to her brain through her ear. There is a total synthesis and connection between you. So you can monitor all his brain activity. What's going on in her nervous system, what she's feeling as she does it - although the picture isn't entirely clear, because the way you apply mind control to her is greatly influenced by it. But you can't break the control because fear is likely to win. So you start your test in this form. You sit down and kneel the humanoid down, then put your genitals in her mouth. <n1>The hormones released in the humanoid's body spur it into action, it begins to suck it.</n1> This is a completely new sensation for you. There is no such connection between your species. In fact, you don't even have the possibility of such activity. Your experiment is complete, and the humanoid [[has been captured.|Bridge]]
<<set $human5 to false>>
<<set $human += 1>>
<<set $humanoid to true>>
<<set $mindIdx = (typeof $mindIdx === "number") ? (($mindIdx % 4) + 1) : 1>>
<<set _roll = $mindIdx>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind1.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind2.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind3.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind4.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 5>>
<!-- üres, nem indul semmi -->
<</switch>>
<img src="IMG\1\0028.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d35400;"> 0028 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+26 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A massive, semi-transparent sheath drifts gently through space. Its origin is unknown, but its construction suggests whoever built it was deeply concerned about something.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0028">><img src="IMG\1\0029.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0029 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+92 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Uninhabitable acidic crust planet. The ground continuously secretes corrosive acids that dissolve metal and organic matter alike. No contact advised - all previous probes were lost within seconds of surface contact.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0029">>
<<if setup.stormSound is undefined>>
<<run setup.stormSound = new Audio("music/storm.mp3")>>
<<run setup.stormSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.stormSound.play().catch(()=>{})>><img src="IMG\1\0030.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0030 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+57 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Mutated lifeforms only – no original humanoid species remain</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Post-nuclear wasteland. Formerly home to an advanced humanoid civilization, the planet was rendered uninhabitable after full-scale thermonuclear war. Severe genetic instability observed among surviving organisms.</span></div>
<div style="text-align: center;"> <a data-passage="0030a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0030">><img src="IMG\1\0030a.png" />
Another infected, decaying world… What was once a thriving civilization now lies in ruins - crumbling buildings and silent streets are all that remain. The humanoids brought about their own downfall once more. Only a few survived, and even they are not safe - the infection lingers in their bodies, waiting patiently for weakness to strike. The virus is patient - and it has allies: those who have already turned, who have lost all traces of humanity. They live for one purpose only - to spread. It’s happening right now. An infected one chases a yet-unturned humanoid through the empty streets. Rescue is an option… but a dangerous one. You can’t risk bringing the infection aboard your ship. <n3>So you watch from above. Silently.</n3>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ftoy10.mp4" type="video/mp4">
</video>
@@
As the infected one catches its prey, the true nature of this world rises to the surface once more - <n3>the filth, the corruption that saturates everything.</n3> No matter the path taken, everything seems to circle back to the same twisted end. It’s as if some unseen, incomprehensible force is distorting reality itself. Something ancient. Something dark. Something that taints [[all it touches.|Bridge]]<img src="IMG\1\0031.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0031 </span>
<b>TEMPERATURE:</b> <span style="color:#fff;">N/A (orbital object)</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Inactive derelict satellite of unknown origin. Structure shows severe instability and drifting debris. Engineering suggests remnants of a pre-collapse civilization. No transmission signals detected.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0031">><img src="IMG\1\0032.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0032 </span>
<b>TEMPERATURE:</b> <span style="color:#fff;">N/A (derelict spacecraft)</span>
<b>POPULATION:</b> <span style="color:#fff;">None – skeletal remains of <i>Macaca mulatta</i> found</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Derelict spacecraft of Earth origin. Cockpit contains the remains of a rhesus monkey, likely from early 21st-century primate spaceflight missions. A symbolic echo of humanity’s first cosmic steps — and forgotten sacrifices.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0032">><img src="IMG\1\0033.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0033 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+21 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Mixed – multiple intelligent species</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Orbital city enclosed within a protective dome. Serves as a cultural and commercial hub between star systems, home to diverse civilizations from across the galaxy.</span></div>
<div style="text-align: center;">[[Transmitting docking request]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0033">>
<<set $b033 to true>>
<<if setup.tomegSound && !setup.tomegSound.paused>>
<<run setup.tomegSound.pause()>>
<<run setup.tomegSound.currentTime = 0>>
<</if>><img src="IMG\1\0033a.png" />
You arrive. Docking completes smoothly, and moments later your boots touch the ground of the city’s inner district. The air is dense - thick with alien aromas and the metallic sting of electrical discharges. <n1>All around you: faces, shapes, movements - a vibrant mix of familiar and unknown species.</n1> Some you recognize by name, others you’ve only seen in ancient logs or fleeting memories. This part of the city draws visitors from every corner of the galaxy: merchants, smugglers, mercenaries, researchers - or simply those trying to survive. Restaurants, shops, and neon-lit entertainment venues crowd the streets. But one place draws particular attention. A commotion brews outside. <n1>It’s a nightclub…</n1>
<div style="text-align: center;"> <a data-passage="club" class="link-internal link-image"><img src="IMG\club.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<img src="IMG\1\0033b.png" />
The air is thick with smoke and the pulse of <n3>electrogalaxy beats</n3> reverberates through the walls. Flashing strobes slice the darkness, painting the crowd in waves of ultraviolet and neon green. To the right, shadowy <n3>VIP</n3> booths are half-hidden behind shimmering curtains, guarded by silent bouncers in exo-armor. To the left, an alien bar glows dimly, serving colorful drinks to all kinds of beings. It's worth having a drink there - <n3>you might overhear useful information.</n3>
<div style="display: flex; justify-content: center; gap: 80px; font-family: 'Segoe UI', sans-serif; color: #cce6f5;">
<div style="text-align: center;">
<div><b>[[Order a drink]]</b></div>
</div>
<div style="text-align: center;">
<div><b>[[Watch the "show"]]</b></div>
</div>
</div>
<div style="text-align: center;">[[Back|0033]]</div>
<<if setup.tomegSound is undefined>>
<<run setup.tomegSound = new Audio("music/tomeg.mp3")>>
<<run setup.tomegSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.tomegSound.play().catch(()=>{})>><img src="IMG\1\0033c.png" />
<n3>“Verth'Kai”</n3> – the iconic drink of the Zenthari. A dense, darkly iridescent liquid that delivers both a spicy kick and a chilling afterglow. It’s the most popular drink on your homeworld. Among the Zenthari, drinking it is almost a ritual - <n3>one sip for the past, one for home.</n3>
<div style="text-align: center;">[[Back|club]]</div>
<<if $yakoq3 is true>><<goto "shaman">><</if>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\0033d.mp4" type="video/mp4">
</video>
@@
<n1>A humanoid</n1> – You’re no longer surprised that they provide the main entertainment here, much to the crowd’s delight. What does surprise you is how little you actually know about their kind.
<div style="text-align: center;">[[Back|club]]</div><<if $pics4 is true>><div class="hover-image-wrapper"><img src="IMG/1/0034.png" class="main-image" alt="comics"><a data-passage="0034a" class="hover-link link-internal link-image"><img src="IMG/1/0034a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\00340.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0034 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+73 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Uninhabitable planet-sized orbital junkyard. Toxic atmosphere and unstable terrain composed of industrial debris, with active radiation zones. Believed to contain remnants of lost civilizations buried beneath the wreckage.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0034">><img src="IMG\1\0035.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0035 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+38 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid life signs detected on board</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Derelict drifting spacecraft partially fused with an unknown tentacled lifeform. Hazards include biological contamination, potential hostile sentience, and severe structural instability.</span></div>
<<if $human6 is true>><div style="text-align: center;">[[Enter the interior of the ship]]</div><<else>><n3>You've visited this place before</n3><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0035">><img src="IMG\1\0035a.png" />
As you enter what was once a ship, the scene is haunting. The walls are no longer metal - they pulse with organic tissue, alive and aware. The creature has fused with the vessel, turning it into an extension of its own body. The ship doesn’t fly anymore. <n1>It breathes.</n1> Your sensors pick up a single life sign. You follow it, deeper into the biomass-infested corridors, until you find them - <n1>a humanoid, still alive...</n1> but trapped. Thick, fleshy tendrils coil tightly around their body, holding them in place. It’s not a cage. It’s a claim. Force won’t work. Any attempt to pull them free could kill them both. There’s only one chance: you must infiltrate the creature’s mind. If you can find its neural core, perhaps you can override its instincts. <n1>Seize control.</n1> Command it to release the captive... before it's too late.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\0035b.mp4" type="video/mp4">
</video>
@@
The creature isn’t just holding the humanoid - it seems to be preparing for something more. <n3>Reproduction.</n3> And that almost certainly means the captive’s death. Time is running out. You have to act. But the entity’s mind is powerful - resisting every attempt to infiltrate it. <n3>You only have one chance to break through the creature’s mind.</n3>
<div style="text-align: center;">[[Try to save the humanoid]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $fail to 1>><<puzzle 3 3 "IMG/1/codev2.png" 480 6 "Win">>
<div style="text-align: center;">The <n1>creature’s</n1> mind is protected by several barriers, but you are slowly breaking through each of them. All that remains is to <n1>find the right neural pathway</n1> and compel it to obey you.</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.beatSound is undefined>>
<<run setup.beatSound = new Audio("music/beat.mp3")>>
<<run setup.beatSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.beatSound.play().catch(()=>{})>>The mind control was successful. The creature’s tendrils slowly released their grip on the humanoid woman, letting her fall to the ground. You had seized control - compelled the entity to release her - and then pushed it into a deep, dreamless sleep. But the effort drained you completely. You no longer had the strength to breach humanoid mind. You thought you would have to subdue her by force. But it seems that won’t be necessary. She slowly rises. At first, she tries to cover her exposed body with hesitant hands, a flicker of embarrassment in her movement. But then she lowers her arms, standing without fear. Finally, with a <n1>soft smile on her face</n1>, she says:
<img src="IMG\1\0035c.png" />
Perhaps she will be cooperative - perhaps she will come with you willingly aboard your ship. Maybe she can help you understand humanoids on a deeper level. After all, when you breach their minds and conduct your experiments, you learn many things… but you don’t truly get to know them. Until now, you had never spoken to one.
<img src="IMG\1\aj1.png" />
The humanoid followed without resistance as you left the vessel and crossed over to the Xal’Rynor. Once aboard, still visibly flustered, she turned to you with a flushed face. Despite her confusion, she made an effort to communicate with you.
<img src="IMG\1\aj2.png" />
The humanoid stepped into the cabin, leaving you alone in the corridor. You stood there for a moment, considering. Perhaps it would be worth forming some kind of connection with her - not just imprisoning and controlling her through mind manipulation. Perhaps, this time, you could allow her to keep her free will. Keep her aboard the ship for a while. Observe her. Understand her. <n3>Of course, she must be kept away from the imprisoned humanoids</n3> and other lifeforms. She cannot be allowed to access that section of the ship. Letting her near them would compromise everything. It would destroy [[your plan entirely.|Ship]]
<<set $human6 to false>> <<set $juno to true>> <<set $junoa to true>>
<<if setup.beatSound && !setup.beatSound.paused>>
<<run setup.beatSound.pause()>>
<<run setup.beatSound.currentTime = 0>>
<</if>>
<<if setup.thxSound is undefined>>
<<run setup.thxSound = new Audio("music/thx.mp3")>>
<<run setup.thxSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.thxSound.play().catch(()=>{})>><img src="IMG\1\cruw.png" />
<div style="text-align: center;"><n1>The crew quarters are practically empty</n1> - after all, you brought no companions on this journey. But they may still prove useful. Who knows how many might join you along the way.</div> <div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<<if $juno is true>><a data-passage="Juno" class="link-internal link-image">
<img src="IMG\1\juno.png" alt="Juno" style="width: 200px;">
</a><</if>>
<<if $ahrinew is true>><a data-passage="Ahrinew" class="link-internal link-image">
<img src="IMG\1\ahri.png" alt="Ahrinew" style="width: 200px;">
</a><</if>>
<<if $JunoS is true>><a data-passage="JunoS" class="link-internal link-image">
<img src="IMG\1\juno.png" alt="JunoS" style="width: 200px;">
</a><</if>>
</div>
<div style="text-align: center;">[[Back|Ship]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
Debug button: [[Activate the final phase of Juno’s training camp.]]
If you are using an old save, this bug may occur. I haven’t been able to fix it yet, so I’m leaving this button here temporarily.@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\juno2.mp4" type="video/mp4">
</video>
@@
This is <n1>Juno</n1> - the first humanoid you've ever spoken to on your journey. You saved her, and for that, she’s grateful. As a sign of that gratitude, she’s willing to share what she knows. All you have to do… <n1>is ask.</n1>
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<a data-passage="JunoA" class="link-internal link-image">
<img src="IMG\1\ask.png" alt="JunoA" style="width: 400px;">
</a>
<a data-passage="JunoB" class="link-internal link-image">
<img src="IMG\control.png" alt="JunoB" style="width: 400px;">
</a>
</div>
<div style="text-align: center;">[[Back|Cruw]]</div>
<<if setup.talkjSound is undefined>>
<<run setup.talkjSound = new Audio("music/talkj.mp3")>>
<<run setup.talkjSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.talkjSound.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\juno2.mp4" type="video/mp4">
</video>
@@
<<set _choice = either(1, 2, 3)>> <<if _choice == 1>>
You ask Juno where she was headed when the creature overtook her ship. She tells you she was on her way to her homeworld - <n1>Velaris</n1> - which appears on your galactic map as <n3>Object 0070.</n3> She then asks if she can travel with you until you reach that system. Once there, she promises to part ways peacefully. This is particularly good news for you - it means you’ll have time to speak with her, to observe her. And once you reach the planet, you can decide whether to <n1>let her go… </n1> or <n3>lock her away with the others.</n3> Until then, it’s better if she believes you’re just a harmless explorer.
<</if>> <<if _choice == 2>>
You ask her to tell you about <n1>humanoid customs, their religions, and their worldview.</n1> You want to understand how they think - what they value, what they believe in, and how they see their place in the universe. This isn’t just curiosity. It’s part of your research. To truly understand a mind, it's not enough to map its structure - you must grasp the belief behind the thought, and the feeling behind the belief.
<</if>> <<if _choice == 3>>
You now ask her a direct and curious question: to tell you about humanoid reproduction. Over the course of your travels, you’ve encountered several unusual and intriguing moments related to this topic, and it has become increasingly clear that humanoids approach reproduction quite differently from your own kind. For your species, the act serves only one purpose: preservation of the species. Zenthari biology, culture, and philosophy do not associate such processes with pleasure or emotional intent. Which makes it all the more fascinating that humanoids, by all appearances, do not mate solely for procreation - but often for pleasure, connection, or other emotional impulses. <n1>At first, Juno is surprised - and even laughs.</n1> But when she sees that your question is sincere and entirely scientific, she becomes visibly flustered… and then begins to explain. She acknowledges your observation and confirms it: yes, humanoids do engage in mating not only to reproduce - <n3>but often, and sometimes exclusively, for the purpose of pleasure.</n3>
<</if>>
<div style="text-align: center;">[[That was enough talk|Cruw]]</div>
<<if setup.talkj1Sound is undefined>>
<<run setup.talkj1Sound = new Audio("music/talkj1.mp3")>>
<<run setup.talkj1Sound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.talkj1Sound.play().catch(()=>{})>><img src="IMG\1\juno4.png" />
Although your initial intention with this humanoid was to treat her differently than the others - to preserve her free will and engage in genuine conversation - you begin to realize that doing only that would be a wasted opportunity. <n1>And so, you decide to use mind control after all.</n1> Only this time… differently. You need to get male humanoids. <n1>This will allow you to examine humanoid sexual relations more closely. </n1> And of course, you erase her memories.
<div style="text-align: center;"><div style="border: 2px solid #4286f4; padding: 12px; color: #4286f4; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>Inter-Humanoid Testing</b>
<div style="display: flex; justify-content: space-between; margin-top: 12px;"> <div style="flex: 1;"><<if $male >= 1>>[[Male x Female - Test 1.0]]<br><</if>><<if $male >= 1>>[[Male x Female - Test 2.0]]<br><</if>><<if $male >= 1>>[[Male x Female - Test 3.0]]<br><</if>>
</div> <div style="flex: 1;"> <<if $male >= 2>>[[2xMale x Female - Test 4.0]]<br><</if>><<if $male >= 2>>[[2xMale x Female - Test 5.0]]<br><</if>><<if $male >= 3>>[[3xMale x Female - Test 6.0]]<br><</if>></div></div></div> <<if $male < 1>>
<div style="margin-top:10px; color:#ff6666;">⚠ You need male humanoids to initiate tests.</div>
<</if>></div>
<div style="text-align: center;">[[Back|Cruw]]</div><<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>> <<if Math.random() <= 0.3>>
<<run setup.mindSound.play().catch(()=>{})>>
<</if>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\test1a.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>NEURAL TEST:</b> <span style="color:#00cc99;">Sync 1.0</span><br>
<b>Mind Control:</b> Low-intensity level engaged.<br>
<b>Link Quality:</b> Neural connection between subjects established with ease.<br>
<b>Physical Condition:</b> No injuries detected.<br>
<b>Risk Factor:</b> No signs of respiratory distress.<br>
<b style="color:#66ccff;">NEUROCHEMICAL:</b> Dopamine release confirmed in both subjects.
</div>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\test1b.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>NEURAL TEST:</b> <span style="color:#00cc99;">Phase 2</span><br>
<b>Mind Control:</b> Increased intensity level.<br>
<b>Link Modification:</b> Connection between the two humanoids adjusted - more <n3>aggressive and intense.</n3><br>
<b>Neurochemical Response:</b> Dopamine release continues under modified conditions.
</div>
<div style="text-align: center;"><<return "Back">></div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\test2a.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #6c33c3; padding: 12px; color: #c3a9ff; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>SCF PROTOCOL:</b> <span style="color:#a073ff;">Test 2.0</span><br>
<b>Mind Control Function:</b> Limited to stimulation of estrogen production in humanoid physiology.<br>
<b>Hormonal Response:</b> Estrogen levels increase to 400% of baseline.<br>
<b>Behavioral Directive:</b> No direct control required - hormonal elevation alone initiates mating behavior between subjects.
</div>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\test2b.mp4" type="video/mp4">
</video>
@@
During the examination, you deployed two ZCF drones to perform close-range scans and observe the outcome of the process more precisely. The test yielded several intriguing results. The mating behavior between humanoids is, as previously suspected, primarily driven by the pursuit of pleasure. This pattern is especially evident in female humanoids. Over the course of their evolution, <n3>their bodies have developed not merely to enable reproduction, but to actively give and receive pleasure during the act.</n3> This trait sets them apart from most known species, where mating is a biological function - devoid of enjoyment, driven solely by necessity. And this… explains a great deal.
<div style="text-align: center;"><<return "Back">></div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\test3a.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>NEURAL TEST:</b> <span style="color:#00cc99;">ZCF Protocol – Test 3.0</span><br>
<b>Stimulation Target:</b> Estrogen level enhancement initiated.<br>
<b>Link Effect:</b> A new form of emotional-chemical bonding has emerged.<br>
<b>Neurochemical Result:</b> <n3>Dopamine release confirmed</n3>
</div>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\test3b.mp4" type="video/mp4">
</video>
@@
This test has definitively confirmed your hypothesis: humanoids engage in sexual activity not solely for reproduction, but also for the pursuit of pleasure. You’ve now seen clear evidence - dopamine is produced in the female's body even when the act does not involve <n3>direct stimulation of the sex organs.</n3> Their physical structure has evolved this way over the course of their species’ development.
<div style="text-align: center;"><<return "Back">></div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\test4a.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>NEURAL TEST:</b> <span style="color:#00cc99;">ZCF Observation – Group Interaction</span><br>
<b>Hormonal Condition:</b> Elevated estrogen levels detected.<br>
<b>Mind Control Input:</b> Minimal influence applied.<br>
<b>Result:</b> Bonding successfully established among three humanoid subjects.<br>
<b style="color:#ffcc00;">INQUIRY:</b> <n3>Can this number be increased?</n3>
</div>
<div style="text-align: center;"><<return "Back">></div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\test5a.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>NEURAL TEST:</b> <span style="color:#00cc99;">ZCF Log – Pattern Discovery</span><br>
<b>Observation:</b> A new form of mating interaction among three humanoids has been identified.<br>
<b>Classification:</b> Cooperative multi-subject bonding - previously undocumented.<br>
<b>Relevance:</b> <n3>Indicates greater behavioral flexibility than initially assumed.</n3>
</div>
<div style="text-align: center;"><<return "Back">></div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\test6a.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>NEURAL TEST:</b> <span style="color:#00cc99;">ZCF Expansion – Subject Count: 4</span><br>
<b>Execution:</b> Experimental protocol successfully applied to four humanoid subjects.<br>
<b>Outcome:</b> Stable multi-subject bonding achieved.<br>
<b>Assessment:</b> Subject count does not appear to be a limiting factor.
</div>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\test6b.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>NEURAL OBSERVATION:</b> <span style="color:#00cc99;">ZCF Pattern Response – Group Dynamics</span><br>
<b>Subject Count:</b> Increasing<br>
<b>Behavioral Shift:</b> Humanoid subjects exhibit progressively more creative bonding strategies.<br>
<b>Implication:</b> Group size appears to enhance behavioral variability and improvisation.
</div>
<div style="text-align: center;"><<return "Back">></div><img src="IMG\1\0036.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0036 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−12 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A synthetic, humanoid-shaped entity slowly drifting across the void. <n1>Clearly artificial, eerily lifelike</n1>. Its material reflects starlight with an unnatural sheen, and faint rhythmic pulses are emitted from within. Origin and purpose remain unknown.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0036">>
<<if setup.gumSound is undefined>>
<<run setup.gumSound = new Audio("music/gum.mp3")>>
<<run setup.gumSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.gumSound.play().catch(()=>{})>><img src="IMG\1\0037.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0037 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+12 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Colossal space whales</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">In the farthest reaches of the galaxy, <n1>colossal space whales</n1> drift silently through the void. Their bodies span the size of continents, their unreadable gaze inspiring reverence. Some whisper they are the ones dreaming the stars into existence.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0037">> <<if setup.balSound is undefined>>
<<run setup.balSound = new Audio("music/bal.mp3")>>
<<run setup.balSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.balSound.play().catch(()=>{})>><img src="IMG\1\0038.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0038 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+19 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Male humanoid detected – species unknown</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Vital signs stable. Subject confirmed within scan range and appears responsive. Exact species classification remains undetermined.</span></div>
<<if $male1 is true>> <div style="text-align: center;"> <a data-passage="1male" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0038">><img src="IMG\1\0001e.png" />
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PROCESS: UPLINK</b><br>
<span style="color:#28a745;"><b>STATUS: SUCCESS</b></span><br>
<b>SUMMARY:</b> Targeted lifeform successfully elevated via Graviton Beam.<br>
<b>LOCATION:</b> Subject secured within BIO-LAB<br>
</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $male1 to false>>
<<set $male += 1>>
<<if setup.sugarSound is undefined>>
<<run setup.sugarSound = new Audio("music/sugar.mp3")>>
<<run setup.sugarSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.sugarSound.play().catch(()=>{})>>
<img src="IMG\1\0040.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0040 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+29 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid presence detected - sentient lifeform confirmed</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Habitable jungle-class planet. Dense tropical exoplanet with extreme humidity and oversized insectoid fauna. High biological activity makes surface operations hazardous. Extreme caution advised.</span></div>
<div style="text-align: center;"> <a data-passage="bug" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0040">><img src="IMG\1\0040a.png" />
The planet is covered in dense rainforests, with a hot and humid climate. The atmosphere is rich in oxygen, accelerating biological growth. As a result, the dominant species here are enormous insects, standing at the top of the food chain. A scouting vessel attempted a landing, but was quickly ensnared in the webs of giant jungle-dwelling arthropods. Immobilized and trapped, the ship was lost. Only one crew member survived the crash. Though they managed to escape the wreck, they didn’t get far.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\bug.mp4" type="video/mp4">
</video>
@@
You can no longer save them. Insects have already implanted their <n2>larvae deep within the humanoid’s body.</n2> Once they hatch, they will consume the humanoid from the inside and there is no stopping it. You don't need a humanoid like this anyway. At this point, you feel their survival is irrelevant to the success of your mission.
<div style="text-align: center;">[[Back|Bridge]]</div><<if $pics5 is true>><div class="hover-image-wrapper"><img src="IMG/1/0041.png" class="main-image" alt="comics"><a data-passage="0041a" class="hover-link link-internal link-image"><img src="IMG/1/0041a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\00410.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#e67e22;"> 0041 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+670 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Volcanic planet with a molten surface, plagued by frequent lava eruptions and unstable atmospheric pressure. No signs of organic life. Geological activity may reveal deep-crust anomalies.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0041">>
<img src="IMG\1\0042.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0042 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+7 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">One organism detected - non-humanoid</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Derelict spacecraft of Earth origin. Originally designed as a humanoid vessel, but scans confirm the presence of a surviving lifeform that is <i>not</i> humanoid.</span></div>
<div style="text-align: center;">[[Enter the ship|Dog]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0042">><img src="IMG\1\0042a.png" />
Inside the ship, you find a single living being - <n3>an ordinary, everyday dog.</n3> He belongs to a species that is, in its own way, intelligent, yet clearly incapable of piloting a spacecraft. You wonder why he was launched into space. Perhaps as part of an experiment? One thing is certain - if left here, death awaits him. But you... you might find some use for him. So you decide to take him with you.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $dog to true>>
<<if setup.dogSound is undefined>>
<<run setup.dogSound = new Audio("music/dog.mp3")>>
<<run setup.dogSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.dogSound.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\breed5a.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PROCESS: SYNTHESIS</b><br>
<b>DNA SEQUENCES:</b> HUMANOID + SYN1<br>
<span style="color:#d64141;">STATUS: FAILURE</span><br><br>
<b>Cause:</b> DNA synthesis cannot occur by anal route.<br>
<b style="color:#ffcc00;">NOTE:</b> Retry required </div>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\breed5.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.0;">
<b>PROCESS: SYNTHESIS 2.0 </b><br>
<b>DNA SEQUENCES:</b> HUMANOID + DOG<br>
<span style="color:#27ae60;">STATUS: SUCCESS</span><br><br>
<b>Result:</b> Hybrid organism creation completed successfully. Biological integration stable.<br>
<b style="color:#ffcc00;">NOTE:</b> A new hybrid has been created from the experiment - it's called <span style="color:#f39c12;">VEX</span>.
</div>
<<if $vex is true>><div style="text-align: center;">[[Back|humsub]]</div><<else>><div style="text-align: center;">[[Observe the new hybrid]]</div><</if>><img src="IMG\1\0043.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0043 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−5 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Simplified geometric lifeforms detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Anomalous planet where both terrain and native organisms exhibit unnaturally simplified geometry. Lifeforms consist of segmented, low-curvature structures. The world strongly resembles a rendered simulation or outdated computational artifact.</span></div>
<div style="text-align: center;"> <a data-passage="lowpol" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0043">>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\lowpol.mp4" type="video/mp4">
</video>
@@
Despite the anomaly, this world too has been infected by corruption. Or perhaps it is this very corruption that causes the reality-warping anomaly? You won’t find the answer here. What you do see is enough: the corruption spreads and reshapes worlds even without outside interference. The inhabitants appear humanoid - at least, distorted reflections of them - <n3>but due to the anomaly, their physical traits are fundamentally altered.</n3> In the end, you have no use for them.
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG\1\0044.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0044 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+3 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Minimal – unclear if still humanoid</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The border between this world and the <n2>spirit realm</n2> has collapsed. Cities flicker like afterimages, and creatures move in the fog that should not exist. Those who remain may already belong to the other side.</span></div>
<<if $male2 is true>> <div style="text-align: center;"> <a data-passage="2male" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0044">>
<<if setup.ghSound is undefined>>
<<run setup.ghSound = new Audio("music/gh1.mp3")>>
<<run setup.ghSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.ghSound.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ghost2.mp4" type="video/mp4">
</video>
@@The spirit entities consuming the planet are slowly draining its <n1>life energy</n1>, devouring all that remains. You discover a living humanoid - but their fate is already sealed. Oddly, the energy isn’t being taken in the usual way. Something is different. You realize the spirit must have been <n1>emotionally connected</n1> to the humanoid during its mortal life - and that lingering bond is shaping this unusual interaction. It's a rare phenomenon, perhaps even worthy of study… But this humanoid is far too valuable to lose. You make your choice - the spirit must be <n1>driven away</n1>.
<style>
#slotContainer {
display: flex;
justify-content: center;
gap: 40px;
margin-bottom: 20px;
}
.slotColumn {
width: 60px;
height: 60px;
font-size: 36px;
background-color: #222;
color: #fff;
font-family: monospace;
display: flex;
justify-content: center;
align-items: center;
border: 2px solid #555;
border-radius: 8px;
}
#slotMessage {
text-align: center;
font-weight: bold;
font-size: 18px;
color: white;
}
</style>
<div id="slotContainer">
<div class="slotColumn" id="col1">?</div>
<div class="slotColumn" id="col2">?</div>
<div class="slotColumn" id="col3">?</div>
</div>
<div id="slotMessage">Press SPACE to stop the columns</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<script>>
(function () {
const allSymbols = "ABGHIOPSTUV".split("");
const winningWord = ["G", "O", "T"];
const highlightColor = "#6b52a3";
let columns = [[], [], []];
let intervals = [];
let stopped = [false, false, false];
let stopCount = 0;
let stopIndex = 0;
function shuffle(arr) {
let a = arr.slice();
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
function initializeColumns() {
for (let i = 0; i < 3; i++) {
let set = shuffle(allSymbols.filter(c => c !== winningWord[i]));
set.splice(5, 0, winningWord[i]);
columns[i] = set;
}
}
function clearAllIntervals() {
for (let i = 0; i < intervals.length; i++) {
clearInterval(intervals[i]);
}
intervals = [];
}
function startSpin() {
for (let i = 0; i < 3; i++) {
let index = 0;
const colId = "col" + (i + 1);
const elCol = document.getElementById(colId);
if (!elCol) continue;
intervals[i] = setInterval(() => {
const el = document.getElementById(colId);
if (!el) return;
const val = columns[i][index];
el.innerText = val;
el.style.color = (val === winningWord[i]) ? highlightColor : "#fff";
index = (index + 1) % columns[i].length;
}, 400);
}
}
function stopSpin(col) {
clearInterval(intervals[col]);
stopped[col] = true;
stopCount++;
if (stopCount === 3) {
checkWin();
}
}
function checkWin() {
const vals = [1, 2, 3].map(i => {
const el = document.getElementById("col" + i);
return el ? el.innerText : "";
});
const success = vals.every((val, i) => val === winningWord[i]);
const msg = document.getElementById("slotMessage");
if (success) {
msg.innerText = "Success!";
msg.style.color = "white";
setTimeout(function () {
if (typeof Engine !== "undefined" && typeof Engine.play === "function") {
Engine.play("GHOST");
}
}, 1000);
} else {
msg.innerHTML = "Failure.<br>Press <strong>R</strong> to retry.";
msg.style.fontSize = "22px";
msg.style.color = "#ff4c4c";
}
}
function resetGame() {
clearAllIntervals();
columns = [[], [], []];
stopped = [false, false, false];
stopCount = 0;
stopIndex = 0;
const msg = document.getElementById("slotMessage");
if (msg) {
msg.innerText = "Press SPACE to stop the columns";
msg.style.color = "white";
msg.style.fontSize = "18px";
}
initializeColumns();
startSpin();
}
function keyHandler(e) {
if (e.code === "Space") {
if (stopIndex < 3) {
stopSpin(stopIndex);
stopIndex++;
}
} else if (e.code === "KeyR") {
resetGame();
}
}
window.addEventListener("keydown", keyHandler);
// Biztonságos automatikus indítás
setTimeout(() => {
initializeColumns();
startSpin();
}, 0);
})();
<</script>>
<img src="IMG\1\0045.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0045 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+5778 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Stable main-sequence star, composition and energy output comparable to Sol. Could support habitable zones within its system. Monitoring initiated.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0045">><img src="IMG\1\0046.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0046 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+32 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Inhabited – humanoid presence detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Terrestrial planet classified as inhabited. The world is saturated with intense demonic and spiritual energy, causing persistent interference and anomalous phenomena.</span></div>
<div style="text-align: center;"> <a data-passage="0046a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $b046 to true>>
<<set $lastvisit to "0046">><img src="IMG\1\0046a.png" />
The location is clear. The presence of the mask and the powerful spiritual and demonic energy radiating from the planet leave no doubt - <n3>this is where the Oni can be summoned.</n3> However, you have no information about the ritual itself - neither how to summon nor how to seal the entity. The Guild database offers nothing. If you truly intend to face the Oni, <n3>you’ll have to uncover the method yourself.</n3>
<div style="text-align: center;"><<if $ritual is true>>
<<if $human >= 1>>[[Summon the ONI]]<<else>><n2>To summon the Oni, you need a humanoid</n2><</if>>
<</if>></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $temple1 to true>>
<<set $temple2 to true>>
<<set $temple3 to true>>
<<set $oniStage to 2>><img src="IMG\1\0047.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0047 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+24 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid population confirmed</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Stable terrestrial world with high spiritual resonance. Elevated harmony index and strong cultural imprints suggest ceremonial significance. Further investigation warranted.</span></div>
<<if $temple1 is true>><div style="text-align: center;"> <a data-passage="temple1" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0047">>
<img src="IMG\1\0047a.png" />
Following the sensor readings, you discover the source of the spiritual energy: a shrine perched atop a high ridge. <n1>Inside is a priestess</n1> - perhaps she knows something about summoning the Oni. However, the shrine’s defenses are effective: your mind control waves bounce off a spiritual barrier, and even your gravitational beam is rendered useless. You’ll need another approach. Perhaps you could send in one of your creatures - <n1>the one fast enough for a surprise attack, and strong enough to break through the barrier.</n1>
<div style="text-align: center;"><<if $horsehuman is true>> [[Send the Horse-Human to the planet's surface]]
<<else>>Required creature missing: <n2>Horse-Human - Can be created in the Bio-Lab</n2>
<</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.wind is undefined>>
<<run setup.wind = new Audio("music/wind.mp3")>>
<<run setup.wind.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.wind.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\temple1.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>OBJECTIVE UPDATE:</b><br>
<b>Status:</b> Shrine assault successful.<br>
<b>Unit:</b> Horse-Human breached humanoid resistance.<br>
<b>Mind Control:</b> Successful.<br>
<b>Result:</b><n3>Humanoid captured but No useful data retrieved from target's consciousness.</n3><br>
<b style="color:#ffcc00;">NEXT STEP:</b> Find another temple.
</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human += 1>>
<<set $humanoid to true>>
<<set $temple1 to false>><img src="IMG\1\0048.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#a0522d;"> 0048 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+3 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Known as “Mud World”, this barren planet is covered in endless swamps and sticky sediment layers. No signs of flora or fauna have been detected. Its wet, clay-rich surface remains uncolonized due to unstable terrain and inhospitable conditions.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0048">><img src="IMG\1\0049.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0049 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+42 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Mutated lifeforms</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A global <n2>nuclear war</n2> brought this planet to ruin. Scorched landscapes, irradiated cities, and collapsed ecosystems dominate the surface. Mutated organisms persist despite extreme conditions.</span></div>
<div style="text-align: center;"> <a data-passage="0049a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0049">><img src="IMG\1\0050.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0050 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+23 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid population confirmed</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Stable terrestrial world with high spiritual resonance. Elevated harmony index and strong cultural imprints suggest ritualistic and ceremonial significance. Humanoid civilization confirmed.</span></div>
<<if $temple2 is true>><div style="text-align: center;"> <a data-passage="temple2" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0050">><img src="IMG\1\0050a.png" />
Following the sensor readings, you discover the source of the spiritual energy: a shrine perched atop a high ridge. <n1>Inside is a priestess</n1> - perhaps she knows something about summoning the Oni. However, the shrine’s defenses are effective: your mind control waves bounce off a spiritual barrier, and even your gravitational beam is rendered useless. You’ll need another approach. Perhaps you could send in one of your creatures - <n1>the one fast enough for a surprise attack, and strong and agile enough to climb steep cliffs</n1>
<div style="text-align: center;"><<if $werewolf is true>> [[Send the Werewolves to the planet's surface]]
<<else>>Required creature missing: <n2>Werewolf</n2>
<</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.wind is undefined>>
<<run setup.wind = new Audio("music/wind.mp3")>>
<<run setup.wind.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.wind.play().catch(()=>{})>><img src="IMG\1\0051.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d4ac0d;"> 0051 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+87 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Drexhar Prime is a hyper-arid desert planet with a thin, unstable atmosphere. No water or organic matter has been detected. Planet deemed entirely unsuitable for sustaining any known form of life.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0051">>
<img src="IMG\1\0052.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0052 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+11 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Minimal humanoid population</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The <n1>spirit realm</n1> has begun consuming the planet, leaving half shrouded in ghostly haze and distortion. This rare phenomenon may offer a <n1>unique opportunity to acquire humanoids</n1> before their reality slips away entirely.</span></div>
<<if $human16 is true>> <div style="text-align: center;"> <a data-passage="16human" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0052">>
<<if setup.ghSound is undefined>>
<<run setup.ghSound = new Audio("music/gh1.mp3")>>
<<run setup.ghSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.ghSound.play().catch(()=>{})>><img src="IMG\1\0053.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0053 </span>
<b>TEMPERATURE:</b> <span style="color:#fff;">N/A (orbital megastructure)</span>
<b>POPULATION:</b> <span style="color:#fff;">Occupied — clergy, security forces, and automated defenses</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Name: Cathedral of the Galactic Cross. Type: Orbital Megastructure - Sanctuary-Class Vessel. Status: <n2>Active – High Security Protocols Engaged</n2>. Defenses: orbital shield array, automated turret grid, interceptor swarm. Notes: The structure is sacred to the followers of the Galactic Cross. Entry without proper authorization is considered heresy and met with immediate retaliation. Your creatures are no longer enough. The Cathedral is too heavily fortified - its defenses are both spiritual and militarized, sealing off all access. There is only one way in now: war. But for that, you need an army. Not a lone infiltration - an assault. The question is: <n3>where do you find a mercenary force willing to go up against the Galactic Cross Church?</n3></span></div>
<div style="text-align: center;"><<if $sereg is true>> [[Launch the assault]] <<else>> <n2>Acquire a mercenary force</n2> <</if>></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $b053 to true>>
<<set $lastvisit to "0053">>
<<set $oniStage to 3>>
<<if $temple3 is true>> <<set $temple3a to true>> <</if>>
<<if setup.catedral is undefined>>
<<run setup.catedral = new Audio("music/catedral.mp3")>>
<<run setup.catedral.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.catedral.play().catch(()=>{})>><img src="IMG\1\0022a.png" />
The Zenthari army could obliterate the cathedral in an instant - but you need the High Priestess alive. That means brute force, not overwhelming tech. This is where the Velgrons come in - ruthless, fearless mercenaries with a reputation for breaking through the unbreakable. If they help you, entry is guaranteed. But they don’t fight for free. <n1>Speak to their captain and find out what they want in exchange for their service.</n1>
<img src="IMG\1\0022s.png" />
<img src="IMG\1\captainv.png" />
The Velgron captain receives you with a thunderous gaze from his throne. He wastes no words. He doesn’t want gold, weapons, or favors. He wants one thing - a humanoid thief who stole something from him. What exactly was taken, he won’t say. Why it matters, he keeps to himself. The thief is believed to be hiding somewhere between <n3>Object Planes 0055–0060,</n3> carefully covering their tracks. But if anyone can find them, it’s you. And perhaps this deal is the key that will finally let you break through [[the walls of the Cathedral.|Ship]]
<<set $sereg1 to true>>
<<set $oniStage to 4>><img src="IMG\1\harc1.png" />
The Velgron horde had begun its assault. The first defensive line collapsed swiftly, and their armored monstrosities <n3>forced their way into the heart of the temple</n3>. Inside, blood was already being spilled - Velgrons and templar knights clashed beneath the vaulted ceilings in a brutal, close-quarters battle. But once again, <n3>Velgron brutality proved overwhelming</n3>. One by one, the knights fell - torn apart by sheer strength and unrelenting aggression. The air was thick with smoke and screams, the stone floor painted in crimson. Ahead of you, <n3>a path slowly opens toward the chapel</n3>. There, within the sacred chamber, awaits one who may be more important than any warrior on the field: <n3>a humanoid priestess</n3>, possibly <n3>in possession of the knowledge you so desperately seek</n3>.
<img src="IMG\1\harc2.png" />
At last, the one you came for stands before you. You reach out your hand, trying to pierce their mind - but you hit a wall. An unseen force pushes back, firm as stone. The priestess’s whispered prayer has woven a barrier around them, a wall of words you cannot breach. Their thoughts remain [[sealed to you.]]<img src="IMG\1\0054.png" />
<div style="border:2px solid #6b52a3;border-radius:14px;padding:12px 14px;color:#6b52a3;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(107,82,163,.12) inset,0 10px 24px rgba(0,0,0,.35);">
<b>OBJECT ID:</b><span style="color:#d64141;"> 0054 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+21 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">2 passengers (Humanoid and a Tarkatan)</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Both species are familiar to you, but it is unusual to find them in the same location. However, this should not prevent you from capturing the humanoid - in fact, the Tarkatan might also be a viable target.</span></div>
<div style="text-align: center;"><<if $male3 is true>>[[Sneak aboard the ship]]<</if>></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0054">><img src="IMG\1\a0001.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);">
<b>OBJECT ID:</b><span style="color:#d67c0a;"> 0055 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+19 °C</span>
<b>POPULATION:</b> <span style="color:#28a745;">Humanoid species – dominant and widespread</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The atmosphere is oxygen-rich and fully suitable for standard respiration. While humanoids dominate the biosphere, genetic compatibility is limited, as no other viable species exist nearby. This restricts opportunities for hybrid experimentation despite the planet’s stable environment.</span></div>
<<if $human7 is true>> <div style="text-align: center;"> <a data-passage="7human" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0055">><img src="IMG\1\couple1.png" />
The male humanoid shows <n1>strong interest in the female.</n1> The same <n3>cannot be said about the female.</n3> Their brain activity remains neutral. The male's body is in an elevated state. Therefore, you decide to use mind control only on the female during observation, altering her attitude toward the male.
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<a data-passage="7humana" class="link-internal link-image">
<img src="IMG/control.png" alt="10humana" style="width: 300px;">
</a>
<a data-passage="Grab" class="link-internal link-image">
<img src="IMG/grab.png" alt="Grab" style="width: 300px;">
</a>
</div>
<<set $human7 to false>>
<<set $human += 1>>
<<set $humanoid to true>>
<<if $comics1a is true>><div class="hover-image-wrapper"><img src="IMG/1/0056.png" class="main-image" alt="comics"><a data-passage="0056a" class="hover-link link-internal link-image"><img src="IMG/1/0056a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\00560.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);">
<b>OBJECT ID:</b><span style="color:#c0392b;"> 0056 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+74 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None (surface movement detected)</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Commonly referred to as “Red Terra” or the “Blood Planet”, this world is covered in thick, iron-rich fluid. Its dense, toxic atmosphere contains unknown particulates. While no biological signatures have been confirmed, anomalous surface movement and organic tissue degradation on contact suggest unknown risks.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0056">><img src="IMG\1\0057.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);">
<b>OBJECT ID:</b><span style="color:#d64141;"> 0057 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+19 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Mixed-species inhabitants from across the galaxy</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Known as Orbitra Prime, this world serves as a melting pot of cultures and technologies. It is a central hub for galactic trade and transport, but also a breeding ground for organized crime. Approach with caution - unaffiliated travelers are easy targets.</span></div>
<<if $sereg1 is true>><div style="text-align: center;">[[Scan the city for traces of the thief|Thief1]]</div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0057">>
<<if setup.beatSound && !setup.beatSound.paused>>
<<run setup.beatSound.pause()>>
<<run setup.beatSound.currentTime = 0>>
<</if>>
<div id="imageContainer" style="text-align: center;"> <img id="dynamicImage" src="IMG\\MG\\1\\0.png" /> </div><div style="text-align: center;">The landscape may seem desolate, but that doesn’t mean the thief you’re looking for isn’t hiding somewhere among these wild lands. Using the sample you collected aboard the Velgron ship, you're now able to track traces of the fugitive. With the help of <n2>Xal’Rynor’s scanner,</n2> you can soar above the untamed wilderness and detect even the faintest remnants left behind.</div>
<div style="text-align: center;"> <input id="mySlider" type="range" min="0" max="50" value="0" step="1" oninput="updateSlider(this.value)" style="width: 60%; appearance: none; height: 14px; background: #000000; border-radius: 14px; outline: none; cursor: pointer; padding: 0;" />
</div> <div id="foundText" style="display:none; text-align: center;"> You've found it. It's hiding here - it can no longer escape. Now, only a single press of a button stands between you and capturing the thief. Your hand reaches out and you [[activate the beam!]]
</div>
<script>
var timeoutId = timeoutId || null;
function updateSlider(val) {
const img = document.getElementById("dynamicImage");
img.src = `IMG\\MG\\1\\${val}.png`;
document.getElementById("foundText").style.display = "none";
if (parseInt(val) === 39) {
clearTimeout(timeoutId);
timeoutId = setTimeout(() => {
document.getElementById("foundText").style.display = "block";
}, 1000);
} else {
clearTimeout(timeoutId);
}
}
</script>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.beatSound is undefined>>
<<run setup.beatSound = new Audio("music/beat.mp3")>>
<<run setup.beatSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.beatSound.play().catch(()=>{})>><div id="imageContainer" style="text-align: center;"><img id="dynamicImage" src="IMG\\MG\\0.png" style="max-width: 100%; height: auto; display: block;" /> </div><div style="text-align: center;">
This city may be hiding the thief you’re looking for. Using the sample you collected aboard the Velgron ship, you're now able to track traces of the fugitive. With the help of <n2>Xal’Rynor’s scanner,</n2> you can fly above the city and detect even the faintest remnants left behind. <n3>If you can’t find it, move the scanner to the end and wait a second.</n3> </div><div style="text-align: center;">
<input id="mySlider" type="range" min="0" max="50" value="0" step="1"
oninput="updateSlider(this.value)"
style="width: 60%; appearance: none; height: 8px; background: #000000; border-radius: 8px; outline: none; cursor: pointer; margin: 0; padding: 0;" />
</div> <div id="foundText" style="display:none; text-align: center;"> You didn’t find the thief, even though you scanned the entire city. It seems you’ll have [[to search elsewhere.|0057]]
</div>
<div style="text-align: center;">[[Back|0057]]</div>
<script>
var timeoutId = timeoutId || null;
function updateSlider(val) {
const img = document.getElementById("dynamicImage");
if (img) {
img.src = `IMG\\MG\\${val}.png`;
}
const foundText = document.getElementById("foundText");
if (foundText) {
foundText.style.display = "none";
}
if (parseInt(val) === 50) {
clearTimeout(timeoutId);
timeoutId = setTimeout(() => {
const foundTextAgain = document.getElementById("foundText");
if (foundTextAgain) {
foundTextAgain.style.display = "block";
}
}, 1000);
} else {
clearTimeout(timeoutId);
}
}
</script>
<div style="text-align: center;">[[Back|0057]]</div>
<<if setup.beatSound is undefined>>
<<run setup.beatSound = new Audio("music/beat.mp3")>>
<<run setup.beatSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.beatSound.play().catch(()=>{})>><img src="IMG\1\0058.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0058 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−62 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Drexhar Prime is a hyper-arid desert planet with a thin, unstable atmosphere. No signs of water or organic matter have been detected. The world is deemed entirely unsuitable for sustaining any known form of life.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0058">><img src="IMG\1\0059.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#3cb371;"> 0059 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+28 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Sparse humanoid enclaves</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Sylvara, also known as the “Whispering World”, is covered in lush vegetation, deep valleys, and ancient stone formations. The breathable, oxygen-rich atmosphere carries spores from native flora. Isolated, self-sustaining humanoid communities live in harmony with its vibrant biosphere.</span></div>
<<if $sereg1 is true>><div style="text-align: center;">[[Scan the city for traces of the thief|Thief2]]</div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0059">>
<<if setup.beatSound && !setup.beatSound.paused>>
<<run setup.beatSound.pause()>>
<<run setup.beatSound.currentTime = 0>>
<</if>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\0059a.mp4" type="video/mp4">
</video>
@@
Target acquired. The thief is trapped in the gravitational beam - there's no escape now.
Before you lift her aboard the ship, you take a moment to look her over. It's almost hard to believe that such a small, fragile humanoid managed to steal anything from the Velgrons. Whatever she did, it's not your concern. You've captured her. Now it's time to [[deliver the thief.|Ship]]
<<set $sereg1 to false>>
<<set $temple3 to false>>
<<set $sereg2 to true>>
<<if setup.sugarSound is undefined>>
<<run setup.sugarSound = new Audio("music/sugar.mp3")>>
<<run setup.sugarSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.sugarSound.play().catch(()=>{})>>
<<if setup.beatSound && !setup.beatSound.paused>>
<<run setup.beatSound.pause()>>
<<run setup.beatSound.currentTime = 0>>
<</if>>
<img src="IMG\1\captainv.png" />
The captain's eyes sparkled as he laid eyes on the thief. While you approached, he rose from his throne and began to clap - slowly, deliberately, with grim satisfaction. The thief was already in chains, her gaze hollow, her posture submissive. The captain said little - he didn’t need to. His gestures made it clear: your part of the deal was fulfilled. You had done what he asked. Now it was his turn. His voice rang firm as he assured you: the Velgron army is now at your command. <n3>Once you are ready, you may begin the assault on the Cathedral.</n3> The pact was sealed. The Velgron captain followed the thief, to see her punishment carried out. You, in turn, received what you came for <n3>the army.</n3> Now the choice is yours: [[leave…|Ship]] or [[stay and witness the fate that awaits]] one who dared steal from the Velgrons.
<<set $sereg2 to false>>
<<set $sereg to true>>
<<set $oniStage to 5>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\thief.mp4" type="video/mp4">
</video>
@@
You step into the chamber, and the sight that greets you is not what you expected.
This is no ordinary punishment. No swift execution. No cold reprisal. What is agony for the humanoid - as every trembling motion of her body reveals - is nothing short of entertainment for the Velgrons. He does not delegate this. The punishment is carried out by [[captain own hand.|Ship]]<img src="IMG\Prolog\8.png" />
The universe is vast beyond measure, and so the young explorers divided it among themselves - each claiming a region of the unknown to chart and explore. Auren began his journey in the <n1>ZeroZeroOmega</n1> nebula, a remote and largely unmapped sector far from the core of known space. Here, humanoids are the dominant species - scattered across countless worlds, <n1>living at vastly different levels of technological and cultural development</n1>. Some have just discovered fire, others have begun to reach for the stars. Many are unaware of each other’s existence - let alone the true nature of the cosmos. To the Zenthari, they were always beneath notice. Weak. Primitive. Their planets held little of value. There was no point in conquering them. No glory, no gain.
<img src="IMG\Prolog\9.png" />
But Auren had not come for the humanoids - not this time. <n1>The creatures he sought lived near them</n1>, hidden in the shadows of forgotten moons and isolated planets. They were hybrids, spirits, demons, or mutations - lifeforms that defied categorization. <n1>Some shared a deep bond with humanoid societies</n1>, revered as gods, feared as monsters, or bound by ancient myths. Others lived on neighboring worlds in primitive, untouched conditions, <n1>far from any civilization</n1>. These were the targets. These were the lives Auren had to find, study, and capture - <n1>to be transported back to his homeworld and added to the Zoolithic Archive</n1>. Not as trophies, but as part of a grand design. A living gallery of the strange, [[the dangerous, the forgotten.]]<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\Prolog\5.png" />
Now that we’ve come to know our protagonist and his purpose, it’s time to meet his companion and vessel – <n1>Xal’Rynor</n1>. For Xal’Rynor is not merely a ship. <n1>It is alive</n1>. <n1>It possesses consciousness</n1>. Its mind is an <n1>advanced artificial intelligence</n1>, forged by the Zenthari themselves – the only true companion Auren Thal has during his long journeys among the stars. Xal’Rynor is not just a navigator, but <n1>a guide, an observer, a thinker</n1>.
It provides <n1>real-time analysis</n1> of planetary conditions, native species, and environmental hazards. It supports Auren in fulfilling the Zoolithic Exchange’s assignments – offering <n1>tactical input</n1>, <n1>data interpretation</n1>, and <n1>logistical aid</n1>. In time, it has become more than a tool. <n1>It is a partner</n1> – silent, ever-present, and deeply entwined with Auren’s mission.<n1>Fast and agile</n1>, Xal’Rynor handles deep-space jumps with ease, yet it is far from small. Its internal structure is designed to <n1>capture, contain, and transport exotic lifeforms</n1>, keeping them <n1>safe and stable</n1> through long journeys.
<img src="IMG\Prolog\6.png" />
Beyond its extensive comfort and transport systems, <n1>Xal’Rynor</n1> is equipped with two essential features – tools without which the mission would be impossible. The first is a <n1>neuro-wave emitter</n1>, a weaponized enhancement of the natural Zenthari telepathic ability. This system <n1>amplifies Auren’s mental reach</n1>, allowing him to <n1>influence the thoughts</n1> of various lifeforms – though it does not grant him full control over their actions. It is not a weapon of destruction, but of <n1>domination</n1>, <n1>persuasion</n1>, and <n1>strategic manipulation</n1>. The second is a <n1>graviton beam array</n1> – a powerful, directed energy stream capable of <n1>lifting, drawing in, or suspending organic targets</n1>. With it, Auren can retrieve <n1>elusive or dangerous specimens</n1> without ever leaving the ship, extracting them directly into containment chambers with <n1>precision and care</n1>. Together, these two technologies form the <n1>core of every successful operation</n1>. Capturing, acquiring – and at times even reshaping – rare lifeforms for the Zoolithic Exchange requires more than speed or strength. It requires <n1>subtlety</n1>, <n1>control</n1>, and <n1>precision</n1>. And <n1>Xal’Rynor provides all three</n1>.
<img src="IMG\Prolog\7.png" />
Xal’Rynor displays all incoming guild requests under the Order menu. There, you’ll find details on what specimen needs to be delivered, in what condition, where it can be located, and what background information the Zoolithic Exchange has provided. There’s no fixed sequence - the choice is yours. You decide which orders to pursue first, which routes to take, and how to handle each mission according to your strategy. However, before you gain full access to the order list and earn the freedom to explore the stars, you must first take control of Auren Thal and complete your initial "Tutorial" mission. This first assignment will help you master the systems and prepare for the challenges that await you across the galaxy. First, click on the [[Order menu.|Tutorial]] <<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<<set $tutorial to true>>
<<set $tutbridge0 to true>><img src="IMG\1\0001b.png" />
In this case, you will make use of another function of the starship - one that enhances the unique mental capabilities of the Zenthari: Mind Control. This ability allows you to infiltrate the minds of living beings. While you do not take full control over them, you can subtly influence their actions and behavior. During the DNA synthesis process, this is especially useful with humanoids, as it suppresses the fear response, keeping them in a calm and passive state throughout the procedure. The simpler a lifeform's neural structure, the easier it is to override - which is why infiltrating the horse's mind poses no difficulty for you.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\breed1.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PROCESS: SYNTHESIS</b><br>
<span style="color:#28a745;">STATUS: SUCCESS</span><br>
<b>RESULT:</b> <n3>DNA fusion successful. Hybrid organism created with stable morphology.</n3><br>
<b>TRAITS:</b> Enhanced cognitive processing, increased physical strength, and cross-species adaptability.<br>
</div>
You are not familiar with this form of reproduction. In particular, the stimuli and impulses that are generated in the humanoid body during the process are not known. For your species, reproduction is for life support only. However, in the humanoid's body, it seems to <n1>create a sense of “pleasure”.</n1> An interesting observation that needs further observation.
<img src="IMG\1\0001d.png" />
As you can see, DNA synthesis has been successfully completed. The resulting embryo has been transferred to the <n1>Cell Vault</n1>, where the cell-enrichment mechanism accelerates fetal development. Thanks to this process, a fully matured specimen will be available in a short time. With the newly created species at your disposal. Fulfill your first assigned order by [[selecting the Order menu.|Tutorial2]]
<<set $tutbridge to true>> <<set $tutbridge0 to false>><img src="IMG\1\harc3.png" />
You must break the prayer - and with it, the priestess herself, along with her sacred purity. Without this, her mind remains out of reach. Fortunately, you have your own ways of breaking such defenses. You establish a link with your ship, and with remote control, unlock the cage of the <n3>Horse-Humanoid</n3> hybrid. With a surge of gravitational force, you place the creature just outside the chapel. A single moment is all it takes to slip into its mind and another to issue the command. The beast lunges at the priestess. She tries to resist, but it quickly overpowers her. <n3>Her sacred shield shatters</n3> - and at last, her mind lies [[open before you.]]@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\harc5.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>MENTAL INTERFACE LOG</b><br>
<b>STATUS:</b> <n2>Mind reading successful.</n2><br>
<b>SUBJECT:</b> High Priestess of the Aether Chapel.<br>
<b>DATA ACQUIRED:</b> Complete ritual schema for ONI summoning and binding.<br></div>
<div style="text-align: center;">[[Go back to the ship|Bridge]]</div>
<<set $sereg to false>>
<<set $ritual to true>>
<<set $oniStage to 6>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ritual1.mp4" type="video/mp4">
</video>
@@
You prepare the ritual site. The humanoid is brought forth from the depths - they will serve as the sacrifice, the bridge between worlds. They must remain alive, so you carefully slip into their mind and guide them into a deep, floating trance. Their consciousness quiets, their body lies motionless upon the sacrificial stone. The atmosphere shifts. The energy begins to thicken as the presence of the ONI draws near. It doesn't take long - the spirit-bodied entity arrives. You're struck by how strongly these simple biological forms still affect even beings of pure essence. The connection is formed. You remain at a distance, watching. Waiting. Waiting for the perfect moment - <n2>the moment when the ONI fully crosses the threshold and takes shape in this reality.</n2> That moment… has come.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ritual2.mp4" type="video/mp4">
</video>
@@
The sky turns crimson under the spiritual force of the Oni, its form solidifying with terrifying clarity. This is the perfect moment. You move behind it and place the runes upon its manifested body. The binding takes hold. <n2>The Oni becomes trapped in its corporeal state</n2>, no longer able to shift back into spirit and vanish. Its mind weakens under the strain. You seize control - though difficult and exhausting, your will proves stronger. At last, you manage to imprison the entity within its designated containment, a prison woven with seals from which [[it will never escape.|Ship]]
<<set $ritual to false>>
<<set $oni to true>>
<<set $oniStage to 7>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\breed6.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PROCESS: HYBRIDIZATION ATTEMPT</b><br>
<b>DNA SEQUENCES:</b> HUMANOID + ONI ENTITY<br>
<span style="color:#d64141;">STATUS: FAILURE</span><br>
<b>REASON:</b> Oni entities possess non-organic, transdimensional DNA structures incompatible with standard biological frameworks.<br>
<span style="color: #e6b800;"><b>TEST OBSERVATION:</b> The captive ONI is only willing to have anal intercourse. <n3>No common offspring can be created.</n3></span>
</div>
<div style="text-align: center;">[[Back|humsub]]</div><img src="IMG\1\lab2.png" />
<div class="labReadout">Current stock of humanoid test subjects suitable for DNA synthesis: <br> ⟶ Female units: <n3><<print $human>></n3>
⟶ Male units: <n3><<print $male>></n3>
</div><div class="sys-terminal"><div class="sys-header">⟨ AVAILABLE EXPERIMENT PROTOCOLS ⟩</div><div class="sys-line">▼ Authorized Hybridization Sequences:</div><<if $humanoid and $horse>><div class="sys-entry">⤷ [[Humanoid × Horse]]</div><</if>><<if $humanoid and $kentaur>><div class="sys-entry">⤷ [[Humanoid × Centaur]]</div><</if>><<if $humanoid and $horsehuman>><div class="sys-entry">⤷ [[Humanoid × Horse-Human]]</div><</if>><<if $humanoid and $dog>><div class="sys-entry">⤷ [[Humanoid × Dog]]</div><</if>><<if $humanoid and $werewolf>><div class="sys-entry">⤷ [[Humanoid × Werewolf]]</div><</if>><<if $humanoid and $oni>><div class="sys-entry">⤷ [[Humanoid × ONI]]</div><</if>><<if $humanoid and $yako>><div class="sys-entry">⤷ [[Humanoid × Yako]]</div><</if>><<if $humanoid and $xeno>><div class="sys-entry">⤷ [[Humanoid × Xeno]]</div><</if>><<if $humanoid and $minotaur>><div class="sys-entry">⤷ [[Humanoid × Minotaur]]</div><</if>><div class="sys-footer">⟨ END OF PROTOCOL LIST ⟩</div>
</div>
<div style="text-align: center;">[[Back|Lab]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG\1\a0001.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0060 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+17 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid species – dominant and widespread</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The atmosphere is oxygen-rich and fully suitable for standard respiration. No other viable species have been detected in close proximity for DNA synthesis, limiting genetic compatibility options.</span></div>
<<if $human8 is true>><div style="text-align: center;"> <a data-passage="8human" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0060">>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\8human1.mp4" type="video/mp4">
</video>
@@
A humanoid couple in the act of mating. Not surprising behaviour from them, as your research so far shows that this is one of the most important aspects of their lives. So really, there’s nothing left to experiment with here - you just need to abduct it. Or… is there? Maybe there’s still more to discover. What happens if you amplify the impulses in its brain during mating? You can still find that out here.
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<a data-passage="8humana" class="link-internal link-image">
<img src="IMG/control.png" alt="8humana" style="width: 300px;">
</a>
<a data-passage="Grab" class="link-internal link-image">
<img src="IMG/grab.png" alt="Grab" style="width: 300px;">
</a>
</div>
<<set $human8 to false>>
<<set $human += 1>>
<<set $humanoid to true>><img src="IMG\1\0001b.png" />
The connection between you and the humanoid has been established. You can now stimulate its brain. <n3>Your goal is to better understand the hormone you discovered during the initial DNA synthesis.</n3> You target the region of the brain responsible for this hormone - not to trigger its production, but to amplify the sensation of its absence, the need for it. You're curious to observe how the humanoid will respond - what actions it will take to satisfy this biological urge.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\soloplay.mp4" type="video/mp4">
</video>
@@ The humanoid does not act as you expected. It doesn’t attempt to seek out others of its kind. Instead, it calmly rises, walks over to a piece of furniture in the room, and retrieves a device. It begins to use it and almost immediately, the hormone starts producing within its body. Looks like it doesn’t need anyone else to feel what it wants. Your experiment is complete, and the humanoid [[has been captured.|Bridge]]
<<set $mindIdx = (typeof $mindIdx === "number") ? (($mindIdx % 4) + 1) : 1>>
<<set _roll = $mindIdx>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind1.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind2.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind3.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind4.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 5>>
<!-- üres, nem indul semmi -->
<</switch>>
<img src="IMG\1\0001e.png" />
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PROCESS: UPLINK</b><br>
<span style="color:#28a745;"><b>STATUS: SUCCESS</b></span><br>
<b>SUMMARY:</b> Targeted lifeform successfully elevated via Graviton Beam.<br>
<b>LOCATION:</b> Subject secured within BIO-LAB<br>
</div>
<div style="text-align: center;">[[Back|Bridge]]</div><<if setup.sugarSound is undefined>>
<<run setup.sugarSound = new Audio("music/sugar.mp3")>>
<<run setup.sugarSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.sugarSound.play().catch(()=>{})>>
<<if $wasd is true>> <<goto "tutwasd2">> <</if>>
<<if $arrow is true>> <<goto "tutarrow2">> <</if>>
<<if $manual is true>> <<goto "tutman2">> <</if>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\temple2.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>OBJECTIVE UPDATE:</b><br>
<b>Status:</b> Shrine assault successful.<br>
<b>Unit:</b> <n3>The werewolf shattered the nun's prayer - the protective barrier collapsed.</n3><br>
<b>Mind Control:</b> Successful.<br>
<b>Result:</b><n3>Humanoid captured but No useful data retrieved from target's consciousness.</n3><br>
<b style="color:#ffcc00;">NEXT STEP:</b> Find another temple.
</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human += 1>>
<<set $humanoid to true>>
<<set $temple2 to false>><img src="IMG\log.png" />
<div style="text-align: center;">This is where the ship stores information about planets or objects that may be important to your mission - <n3>places you might need to revisit or monitor more than once.</n3></div>
<<if $b019 is true>><img src="IMG\1\q1.png" /><</if>>
<<if $b022 is true>><img src="IMG\1\q2.png" /><</if>>
<<if $b026 is true>><img src="IMG\1\q3.png" /><</if>>
<<if $b033 is true>><img src="IMG\1\q4.png" /><</if>>
<<if $b046 is true>><img src="IMG\1\q5.png" /><</if>>
<<if $b053 is true>><img src="IMG\1\q6.png" /><</if>>
<<if $b080 is true>><img src="IMG\1\q7.png" /><</if>>
<<if $b088 is true>><img src="IMG\1\q8.png" /><</if>>
<<if $b102 is true>><img src="IMG\1\q10.png" /><</if>>
<<if $b150 is true>><img src="IMG\1\q9.png" /><</if>>
<<if $b151 is true>><img src="IMG\1\q11.png" /><</if>>
<<if $b165 is true>><img src="IMG\1\q12.png" /><</if>>
<div style="text-align: center;"><pn><<return "Back">></pn></div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\1\0014a.png" />
Capturing the female humanoid is not particularly difficult for you - the only real concern is the panic it might cause on the planet. However, the locals are far from advanced enough to pose any real threat. You could take her easily... or use this opportunity to your advantage. Several humanoids are gathered nearby. By deploying mind control, you could once again study their behavior - both for research and, admittedly, for your own "entertainment." So the choice is yours: <n3>capture the female</n3>, or <n3>initiate mind control and observe what unfolds</n3>.
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<a data-passage="9humana" class="link-internal link-image">
<img src="IMG/control.png" alt="9humana" style="width: 300px;">
</a>
<a data-passage="Grab" class="link-internal link-image">
<img src="IMG/grab.png" alt="Grab" style="width: 300px;">
</a>
</div>
<<set $human9 to false>>
<<set $human += 1>>
<<set $humanoid to true>><img src="IMG\1\0001b.png" />
You have no way of knowing the exact nature of the relationship between these individuals - but it hardly matters from a research perspective. With ease, you infiltrate their minds and stimulate their bodies to produce excessive levels of testosterone and estrogen. All that remains is a gentle push - a surge of confidence and boldness - and the interaction between the humanoids begins to shift. A new scenario unfolds, driven by instinct and impulse, ripe for observation.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\9human.mp4" type="video/mp4">
</video>
@@
As you observe from a distance, your conclusion is once again the same: the humanoid species is easily corruptible. Their bodies, biological systems, and neural architecture seem inherently designed to facilitate mating behavior. During the act, noticeable physical changes occur - even their vocal patterns shift, particularly among [[the female specimens.|Bridge]]
<<set $mindIdx = (typeof $mindIdx === "number") ? (($mindIdx % 4) + 1) : 1>>
<<set _roll = $mindIdx>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind1.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind2.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind3.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind4.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 5>>
<!-- üres, nem indul semmi -->
<</switch>>
<img src="IMG\1\0021a.png" />
Three humanoids are present: two females and one male. By activating mind control, you can once again observe their behavior - driven by instinct, shaped by biology - for the sake of science and, admittedly, your own "entertainment." The decision is yours: <n3>capture the females</n3>, or <n3>initiate mind control and observe what unfolds</n3>.
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<a data-passage="10humana" class="link-internal link-image">
<img src="IMG/control.png" alt="10humana" style="width: 300px;">
</a>
<a data-passage="Grab" class="link-internal link-image">
<img src="IMG/grab.png" alt="Grab" style="width: 300px;">
</a>
</div>
<<set $human10 to false>>
<<set $human += 2>>
<<set $humanoid to true>><img src="IMG\1\0001b.png" />
From a research perspective, this is a new scenario - three humanoids, with this particular gender distribution, have not yet been part of your testing. Still, your method remains the same. You infiltrate their minds, bend their thoughts and bodies to your will, and observe as the situation unfolds.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\10human.mp4" type="video/mp4">
</video>
@@
Once again, the test proves successful - and unexpectedly enlightening. You gain new insights as you observe just how many parts of the humanoid body are capable of generating "pleasure," and how many different methods these beings have devised to stimulate them. It appears that, over the course of their evolution, the humanoid form has developed primarily with this purpose in mind. Your experiment is complete, and the humanoid [[has been captured.|Bridge]]
<<set $mindIdx = (typeof $mindIdx === "number") ? (($mindIdx % 4) + 1) : 1>>
<<set _roll = $mindIdx>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind1.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind2.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind3.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind4.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 5>>
<!-- üres, nem indul semmi -->
<</switch>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\couple2.mp4" type="video/mp4">
</video>
@@
Yet the result is the same as if you had applied mind control to both. It appears that humanoids have a strong influence on each other. Sometimes, such outcomes occur even without any external intervention. Your experiment is complete, and the humanoid [[has been captured.|Bridge]]@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\8human2.mp4" type="video/mp4">
</video>
@@
You slip into the female humanoid’s mind and tune into the regions responsible for releasing oxytocin, dopamine, and endorphins during the act. Gradually, you begin to amplify their presence in her body. <n3>The result is... striking - unlike anything you’ve seen before.</n3> This is one of those moments where you've truly learned something new about humanoids. Your experiment is complete, and the humanoid [[has been captured.|Bridge]]
<<set $mindIdx = (typeof $mindIdx === "number") ? (($mindIdx % 4) + 1) : 1>>
<<set _roll = $mindIdx>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind1.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind2.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind3.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind4.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 5>>
<!-- üres, nem indul semmi -->
<</switch>>
<<if $comics1b is true>><div class="hover-image-wrapper"><img src="IMG/1/0061.png" class="main-image" alt="comics"><a data-passage="0061a" class="hover-link link-internal link-image"><img src="IMG/1/0061a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\00610.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#3a9ad9;"> 0061 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+412 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Jovaleth is a turbulent, uninhabited planet with a dense swirling atmosphere composed of superheated gases. No signs of life have been detected. Extreme temperatures and atmospheric instability prevent any form of exploration.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0061">><img src="IMG\1\0062.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#b48c4a;"> 0062 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−93 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Varron Dusk is an uninhabited planetary mass composed entirely of drifting particulate matter. No solid core has been detected. Its diffuse structure and extreme cold render it unsuitable for any form of exploration or habitation.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0062">><img src="IMG\1\0063.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#a5cc58;"> 0063 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+21 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Unknown</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Cloverbright is a planetary anomaly featuring unnaturally symmetrical terrain, vibrant flora, and a peaceful climate. No known biological classifications apply to its lifeforms. Its structure resembles a floating landmass suspended in space, defying standard astrophysical models.</span></div>
<div style="text-align: center;"> <a data-passage="anc" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0063">>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\radar.mp4" type="video/mp4">
</video>
@@
You enter the planet’s atmosphere. Space, gravity, and even the laws of physics behave differently here. The lifeforms and vegetation are unlike anything you’ve ever encountered on other worlds. <n3>As you descend, your attention is caught by a strange creature moving across the terrain.</n3> You've never seen anything like it, and your database returns no matches. According to your ship’s sensors, the being appears to be female. It carries certain traits reminiscent of humanoids, but everything else - <n3>its color, skin texture, proportions</n3> - is entirely alien. Still, the idea forms in your mind: perhaps you could run an experiment. See how it reacts to the presence of a humanoid.
<div style="text-align: center;"><<if $male >= 2>>[[Send humanoids to the planet]]<<else>><n2>You’ll need at least two male humanoids</n2><</if>></div>
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG\1\radar1.png" />
The creature notices the two humanoids emerging behind it. It is afraid - your sensors clearly detect an elevated heart rate - yet it does not flee. As if it knows there is no escape. In fact, it seems resigned to its fate, adopting an unexpected posture that has a surprising effect on the two humanoids. Though under your control, they now require little encouragement. You simply amplify the courage within them, urging their thoughts into action - and they move.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\radar2.mp4" type="video/mp4">
</video>
@@
Despite its small size, the creature handles the situation with ease. Its flexible, elastic body and remarkable adaptability become the key to its survival. Perhaps that’s why it chose to appear submissive - knowing this would be the easiest way to [[escape the situation.|Bridge]]<img src="IMG\1\0064.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#999999;"> 0064 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−270 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A massive alien skull, heavily fragmented, estimated at over 800 meters in diameter. It drifts in deep space with no signs of decay. Residual psionic activity has been detected, and its bone density exceeds all known biological limits.</span>
<b style="color:#ff6666;">WARNING:</b> <span style="color:#fff;">Origin unknown.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0064">><img src="IMG\1\0065.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#999999;"> 0065 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+47 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid lifeforms in decline</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The planet is undergoing rapid demonic corruption, with infernal energy signatures rising exponentially across its surface. Forecasts indicate full planetary assimilation is imminent.</span>
<b style="color:#ff6666;">WARNING:</b> <span style="color:#fff;">World will soon be consumed.</span></div>
<div style="text-align: center;"> <a data-passage="0065a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0065">>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\buses.mp4" type="video/mp4">
</video>
@@
<n2>Succubuses</n2> - the source of the demonic presence. These entities don’t merely corrupt the land; they drain the life force from every living creature and the planet itself, spreading decay until nothing remains. <n2>Being demonic in origin</n2>, they are immune to both mind control and gravitational beam restraint. They are many. You are alone. A direct confrontation would be suicide. It’s better to leave.
<div style="text-align: center;">[[Back|Bridge]]</div>
<img src="IMG\1\0066.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#999999;"> 0066 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−245 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A derelict spacecraft, unpowered and adrift in deep space. The hull integrity is severely compromised with visible external damage. No life signs detected, and all communication attempts have failed. Possible containment breach suspected.</span>
<b style="color:#ff6666;">WARNING:</b> <span style="color:#fff;">Approach not advised - unknown hazard risk.</span></div>
<div style="text-align: center;"><<if $egg1 is true>><n2>You’ve been here before.</n2><<else>>[[Step inside the vessel]]<</if>></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0066">><img src="IMG\1\0066a.png" />
The ship is desolate, drifting through space for who knows how long. The crew is long gone - even their corpses have vanished. Only a few scattered bones remain on the metal floor. One thing still appears to be alive… or at least it looks that way: an alien egg. According to the radar, the embryo inside is no longer living, and yet the shell seems to pulse faintly. Something is keeping it intact. Something we don’t understand. Perhaps it's worth examining. The choice is yours. Will you [[take it with you...]] or [[leave it behind?|Bridge]]
<<set $lastvisit to "0066">><img src="IMG\bridge2.png" />
<div style="text-align: center;">
Oops! It looks like you ran into an error. You rushed ahead without choosing an interface. No worries - set it up here: [[Choose Interface|Settings2]]
</div>
<<if $wasd is true>> <<goto "BridgeWASD">> <</if>>
<<if $arrow is true>> <<goto "BridgeArrow">> <</if>>
<<if $manual is true>> <<goto "BridgeMANUAL">> <</if>>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<<if $arachnid is true>> <<set $spider += 1>><</if>>
<<if $spider > 5 >> <<goto "alarm">><</if>>
<<if $junoqa and $junoqb and $junoqc and not $junoqd>><<goto "JunoQ">><</if>>
<<if $junoq4 is true>> <<set $traning += 1>><</if>>
<<if $traning > 10 >> <<set $message to true>><</if>>
<<if $Juno033 is true>> <<set $Juno33 += 1>><</if>>
<<if $Juno33 > 10 >> <<set $message to true>><</if>>
<img src="IMG\1\0066b.png" />
You lift the egg from its nest and take it with you. You place it in the <n1>Cell Vault</n1> - a chamber equipped with everything needed to safely incubate an egg, embryo or any kind of seed.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $egg1 to true>><img src="IMG\cell.png" />
The <n1>Cell Vault</n1> is the ship’s biotechnological core. It represents the pinnacle of Zenthari science - a sealed, sterile environment where advanced systems accelerate cellular division and control every aspect of growth. <n1>Any egg, embryo, or seed placed here begins to develop rapidly.</n1> Whatever enters… will soon awaken.<div style="display: flex; justify-content: center; gap: 10px; margin-top: 6px;">
<<if $egg1 is true>><a data-passage="alienegg" class="link-internal link-image">
<img src="IMG\1\egga.png" alt="alienegg" style="width: 170px;">
</a><</if>>
</div>
<div style="text-align: center;">[[Back|Ship]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG\1\alienegg.png" />
<div style="border: 2px solid #3d3d71; padding: 12px; color: #3d3d71; font-family: monospace; font-size: 15px; line-height: 1.0; text-align: left;">
<b>OBJECT ID:</b><span style="color:#6f85d5;"> EGG-019A </span><br>
<b>Containment Status:</b> Calm. No visible reaction to contact or changes in environment.<br>
<b>Bio-Readings:</b> Silent. The inside remains still and unchanged since discovery.<br>
<b>Development:</b> Dormant. Attempts to awaken its growth have yielded no results.<br>
<b>Anomalies:</b> The shell emits faint, rhythmic pulses. The source remains a mystery.<br>
<b style="color:#ffcc00;">NOTE:</b> The egg seems to sleep, but careful containment is advised. Some hidden force may yet stir within.<br>
<n3>You need to gather more information to hatch the egg.</n3>
</div><<if $egg2 is true>><<if $human >= 1>><div style="text-align: center;">[[Place a humanoid next to the egg]]</div><<else>><div style="text-align: center; color: #e67e22; font-weight: bold;">⚠ You need a humanoid!</div><</if>>
<</if>> <div style="text-align: center;">[[Back|Cell]]</div>
<<if $egg3 is true>><<goto "Place a humanoid next to the egg">><</if>>
<<if $egg4 is true>><<goto "Hatching has begun">><</if>>
<<if $egg5 is true>><<goto "Autoxeno">><</if>>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><<if $pics6 is true>><div class="hover-image-wrapper"><img src="IMG/1/0067.png" class="main-image" alt="comics"><a data-passage="0067a" class="hover-link link-internal link-image"><img src="IMG/1/0067a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\00670.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#71d674;"> 0067 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+39 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Plant-based lifeforms only</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Cactara Prime is an extraordinary world entirely covered by a colossal cactus structure. The atmosphere is arid and dense with airborne spores. </span> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0067">><img src="IMG\1\0068.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d6a74a;"> 0068 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+29 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid population detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Savara is a warm terrestrial world characterized by vast dry grasslands, scattered rocky plateaus, and massive acacia-like flora. The atmosphere is breathable, with high oxygen levels and periodic static storms. Environmental conditions make the planet suitable for humanoid harvesting operations.</span></div>
<<if $human11 is true>><div style="text-align: center;"> <a data-passage="11human" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0068">><img src="IMG\1\0068a.png" />
A temple... places like this always hold surprises. <n3>Science or sorcery?</n3> Something unseen keeps you from reaching those inside. Mind control is ineffective, and to deploy the gravitational wave, the humanoid must first be forced out of the structure. Fortunately, this vast grassy plain is perfect for your hunters. <n3>They will flush the prey from its sanctuary.</n3>
<div style="text-align: center;"><<if $werewolf is true>> [[Send the Werewolves to the planet's surface|11humana]]
<<else>>Required creature missing: <n2>Werewolf</n2>
<</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG\1\0069.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#b37df2;"> 0069 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+14 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid population present</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Yin'Thara is a spiritually charged world divided into two hemispheres one of radiant white stone, the other of obsidian terrain. </span></div>
<div style="text-align: center;"> <a data-passage="jingjang" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0069">><img src="IMG\1\0068b.png" />
As they hit the ground, their hunting instincts ignite. You merely guide them - they know what to do. They head straight toward the temple, where the humanoid doesn't even attempt to hide. Fear takes hold - it abandons everything and runs. But it has no chance. On this vast savanna, the werewolves have the upper hand. Within moments, <n3>they catch up.</n3>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\0068c.mp4" type="video/mp4">
</video>
@@
They’ve caught it, so now your only task would be to press a button and lift the humanoid onto the ship with the beam - but you wait a moment. <n3>Your hunters deserve a bit of fun. </n3> So before you capture it, you allow the werewolves to play with the prey for a little while.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human8 to false>>
<<set $human += 1>>
<<set $humanoid to true>><img src="IMG\1\0069a.png" />
The spiritual and energetic balance is evident across the entire planet - in the atmosphere, the wildlife, the shapes of the landscapes, and even in the layout of constructed structures. Every element seems to follow an unseen law, operating in accordance with the ancient order of yin and yang. Everything seeks balance - harmony - and all things complete one another. In fact, one cannot exist without the other.
This principle is most clearly reflected in the humanoids who live here. They are unlike any others, for they, too, are shaped by this balance. <n1>Within a single body, both male and female aspects coexist.</n1> As a result, the way these beings connect with one another is fundamentally different from what you're used to.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\0069b.mp4" type="video/mp4">
</video>
@@
You're not quite sure what to do with such humanoids, so for now, you simply observe without interfering. For the time being, the sight alone provides enough new information - but in the future, you may subject them to a more thorough examination.
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG\1\0070.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#66bb6a;"> 0070 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+7 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Small humanoid colony present</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">An unnamed terrestrial dwarf planet with thin atmosphere and limited habitable zones. A small humanoid colony resides within stabilized climate regions.</span></div><<if $juno3 is true>><!-- Do nothing, override output --><<else>><<if $juno is true>><div style="text-align: center;">[[Talk to Juno]]</div><<else>>This is the homeworld of one of your future passengers. <n1>You probably haven’t met them yet.</n1><</if>>
<</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0070">>
<img src="IMG\1\0070a.png" />
<n1>Juno</n1> steps off the ship and gazes at the barren, yet beloved landscape of her homeworld. She takes a deep breath - the dust in the air doesn’t bother her. She’s home. Turning back one last time, she thanks you - for saving her, and for bringing her here. Then she walks away, her final words of farewell leaving her lips. You stand still, watching her go. An unfamiliar sensation rises within you. It’s not longing or loss - more like the realization that a subject is slipping from your grasp. <n1>There is still time to change your mind.</n1> Still time to capture her. Perhaps… there are other ways to experiment.
[[Use mind control and capture her]]
[[Let her go and return to the ship|Ship]]
<<set $juno to false>>
<<if setup.talkj4Sound is undefined>>
<<run setup.talkj4Sound = new Audio("music/talkj4.mp3")>>
<<run setup.talkj4Sound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.talkj4Sound.play().catch(()=>{})>>
<<set $juno3 to true>><img src="IMG\1\juno4.png" />
<n1>Juno</n1> doesn’t expect your attack, making it easy to slip into her mind and stop her in her tracks. With a simple command, you compel her to turn around and walk back to the ship. But this time, she’s not headed to the crew quarters. This time, she’s going to the lab - to the secure containment unit. <n1>There’s no longer any need to hide your true nature.</n1>
<div style="text-align: center;">[[Back|Ship]]</div>
<<set $juno2 to true>>
<<set $mindIdx = (typeof $mindIdx === "number") ? (($mindIdx % 4) + 1) : 1>>
<<set _roll = $mindIdx>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind1.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind2.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind3.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind4.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 5>>
<!-- üres, nem indul semmi -->
<</switch>>
<img src="IMG\speci.png" />
This section of the lab is where you keep your special test subjects. <n1>They require more attention than the others</n1> - for reasons that set them apart.
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<<if $juno2 is true>><a data-passage="Juno2" class="link-internal link-image">
<img src="IMG\1\juno.png" alt="Juno2" style="width: 200px;">
</a><</if>>
<<if $ahri is true>><a data-passage="Ahri" class="link-internal link-image">
<img src="IMG\1\ahri.png" alt="Ahri" style="width: 200px;">
</a><</if>>
<<if $sadako is true>><a data-passage="Sadako" class="link-internal link-image">
<img src="IMG\1\Samara0.png" alt="Sadako" style="width: 200px;">
</a><</if>>
</div>
<div style="text-align: center;">[[Back|Lab]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG\1\junop.png" />
<div style="text-align: center;"><n1>Juno</n1> stares at you from behind the energy bars - <n1>terrified, yet burning with rage.</n1> The hatred in her eyes is unmistakable. You’ve imprisoned her against her will. You took her from the edge of her homeworld, just when she thought she was finally safe. You struck in the last moment - when she already felt at peace.</div>
<div style="text-align: center;"><div style="border: 2px solid #4286f4; padding: 12px; color: #4286f4; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>Inter-Humanoid Testing</b>
<div style="display: flex; justify-content: space-between; margin-top: 12px;"> <div style="flex: 1;"><<if $male >= 1>>[[Male x Female - Test 1.0]]<br><</if>><<if $male >= 1>>[[Male x Female - Test 2.0]]<br><</if>><<if $male >= 1>>[[Male x Female - Test 3.0]]<br><</if>>
</div> <div style="flex: 1;"> <<if $male >= 2>>[[2xMale x Female - Test 4.0]]<br><</if>><<if $male >= 2>>[[2xMale x Female - Test 5.0]]<br><</if>><<if $male >= 3>>[[3xMale x Female - Test 6.0]]<br><</if>></div></div></div><<if $male < 1>>
<div style="margin-top:10px; color:#ff6666;">⚠ You need male humanoids to initiate tests.</div><</if>></div>
<div style="border: 2px solid #5a0074; padding: 12px; color: #5a0074; font-family: monospace; font-size: 14px; line-height: 1.4; text-align: center;">
<b style="font-size: 16px;">Initiating AX-Δ</b><br><i>(Adaptation and Resilience Test Protocol)</i><br><br><<if $horse is true>>[[Somatic Adaptation Trial]]<br><</if>><<if $horsehuman is true>>[[Stress Resistance Trial]]<br><<else>> <span style="color:#e53935;">⚠ Missing Subject: Horse-Human</span><br><</if>><<if $male >= 4>>[[Vital Threshold Trial]]<br><<else>><span style="color:#e53935;">⚠ Missing Subject: 4 male humanoid</span><br><</if>></div>
<div style="text-align: center;">[[Back|Ship]]</div><<if setup.talkj2Sound is undefined>><<run setup.talkj2Sound = new Audio("music/talkj2.mp3")>><</if>><<if setup.talkj2bSound is undefined>><<run setup.talkj2bSound = new Audio("music/talkj2b.mp3")>><</if>>
<<if Math.random() <= 0.3>>
<<set _choice = Math.random()>>
<<if _choice < 0.5>><<run setup.talkj2Sound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><<run setup.talkj2Sound.play().catch(()=>{})>><<else>><<run setup.talkj2bSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><<run setup.talkj2bSound.play().catch(()=>{})>><</if>><</if>><<nobr>>
<<set _answer = String($codeNum).padStart(4, "0")>>
<<switch _answer>>
<<case "9999">>
<<goto "9999">>
<<break>>
<<default>>
<img src="IMG/bridge2.png" />
<div style="text-align: center;">
<n2>An error occurred before initiating hyperspace jump.</n2>
Please follow the tutorial mission and head to [[planet 9999 first.|tutorialbridge1]]
</div>
<</switch>>
<</nobr>><<nobr>>
<<set _answer = String($codeNum).padStart(4, "0")>>
<<switch _answer>>
<<case "8888">>
<<goto "8888">>
<<break>>
<<default>>
<img src="IMG\bridge2.png" />
<div style="text-align: center;">
<n2>An error occurred before initiating hyperspace jump.</n2>
Please follow the tutorial mission and head to [[planet 8888 first.|tutorialbridge2]]
</div>
<</switch>>
<</nobr>>
<<set $codeNum to $codeNum or 0>>
<<set $codeHistory to $codeHistory or []>>
<<script>>
(function () {
if (window.__ctrlToBridgeBound) return;
window.__ctrlToBridgeBound = true;
function goBridge(e) {
// csak a Ctrl önálló lenyomására reagálunk (bal vagy jobb)
var isCtrlKey = (e.key === 'Control') || (e.code === 'ControlLeft') || (e.code === 'ControlRight');
if (!isCtrlKey) return;
// opcionális: ne ismétlődjön, ha lenyomva tartod
if (e.repeat) e.preventDefault();
// elnyeljük, hogy más handler ne fogja meg
e.preventDefault();
e.stopPropagation();
if (e.stopImmediatePropagation) e.stopImmediatePropagation();
// ugrás a Bridge passage-ba
try {
Engine.play('Bridge'); // SugarCube 2.x: Engine globális
} catch (err) {
// ha a környezetben csak SugarCube.Engine érhető el:
if (window.SugarCube && SugarCube.Engine) {
SugarCube.Engine.play('Bridge');
} else {
console.error('Ctrl→Bridge hiba:', err);
}
}
}
// capture módban, hogy minden más előtt mi kapjuk el
document.addEventListener('keydown', goBridge, true);
})();
<</script>>
<<set $spaceToCheckAnswer = false>>
<<set $targetVals to [9,17,24,39,49]>>
<<set $targetPassages to {9:"atok1",17:"atok2",24:"atok3",39:"atok4",49:"atok5"}>>
<<set $foundTargets to []>>
<<set $holdMs to 2000>>
<<set $cam = 0>>
<<widget "CamView">><<switch $cam>><<case 1>><img src="IMG/1/cam1.png" alt="Camera 1 view"><<case 2>><video controls autoplay playsinline>
<source src="IMG/VID/cam2.mp4" type="video/mp4">
Your browser does not support the video tag.
</video><<case 3>><video controls autoplay playsinline>
<source src="IMG/VID/cam3.mp4" type="video/mp4">
Your browser does not support the video tag.
</video><<default>><i>...</i><</switch>><</widget>>
<<set $steps = ["AhriStep1","AhriStep2","AhriStep3","AhriStep4"]>>
<<set $labels = ["Next step","Next step","Next step","Next step"]>>
<<set $step = 0>>
:: StoryInit
/* Következő passage neve találat után */
<<set $scanNext = "TargetFound">>
/* Háttérkép URL (abszolút vagy relatív) */
<<set $scanBg = "IMG/city_bg.jpg">>
/* Játékmenet finomhangolás */
<<set $scanSpeed = 10>> /* px / lépés */
<<set $scanHotRadius = 36>> /* "talált" sugár px-ben */
<<set $scanDelayMs = 1200>> /* ms múlva auto-goto */
/* (Opcionális) Fix cél-zóna – ha megadod, nem lesz random: */
<<set $scanTargetX = null>> /* pl. 520 */
<<set $scanTargetY = null>> /* pl. 140 */
/* (Opcionális) Dev mód – ha true, mutat egy segéd UI-t (cílozási debug) */
<<set $scanDev = false>>
<<set $cama = 0>>
<<widget "CamaView">><<switch $cama>><<case 1>><video controls autoplay><source src="IMG/VID/cama1.mp4" type="video/mp4"></video><<case 2>><video controls autoplay><source src="IMG/VID/cama2.mp4" type="video/mp4"></video><<case 3>><video controls autoplay><source src="IMG/VID/cama3.mp4" type="video/mp4"></video><<default>><i>...</i><</switch>><</widget>>
<<set $round = 1>>
<<set $message = "Get ready! Round 1 is about to start.">>
<<set $input = []>>
<<set $accepting = false>>
:: StoryInit [script]
<<set $maze = {
width: 28,
height: 16,
tiles: [
"############################",
"#S#...#.##.......#.........#",
"#...#....#.###.#.#.#.#.###.#",
"##.#####.#.#.#.#1#.#.###2..#",
"#......#.#.....###..##.###.#",
"#.#.##.....#.#.#...#....#..#",
"#.#....#####.#.##.##.#..#.##",
"#.####.........#..3#.##...##",
"#.#....##..#.#######.#..#.##",
"#...##..#.##.....#...#..#..#",
"#.#.#4#........#...#....##.#",
"#.#....###..#.###.##.#.....#",
"#.####.........#..#..#.#.#.#",
"#.#5.###.##.##......##.###.#",
"#..#.....#..6..##.#.....#7.#",
"############################"
]
}>>
<<set $player = { x:$maze.tiles[1].indexOf("S"), y:1, visited:{} }>>
Since the purpose of this test is not the creation or reproduction of new lifeforms, you are not conducting DNA synthesis analysis. There will be other opportunities for that - with different subjects. Besides, she is somewhat more... special than the others. <n1>You keep her in isolated containment, allowing for much closer observation of the changes occurring within her body.</n1> Since DNA synthesis is not an issue here, it is also not important that intercourse between the subjects takes place in the usual way.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\junotrial1.mp4" type="video/mp4">
</video>
@@
<n1>This phase focuses solely on identifying the limits of Juno's body.</n1> Where does the threshold lie - the line a humanoid should not cross? When does risk become irreversible? At what point is intervention still viable, and when must the trial be terminated? You are measuring what a humanoid body can endure. <n1>The results are... unexpected.</n1>
<img src="IMG\1\xray.png" />
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.0; text-align: left;">
<b style="font-size: 16px; color:#1b4f5e;">ZCF: Somatic Adaptation Trial 1.0</b><br>
<b>Primary Subject:</b> <span style="color:#a55eea;">Juno (Humanoid)</span><br>
<b>Secondary Subject:</b> Horse<br>
<b>Observation Result:</b> The humanoid body demonstrates unexpected levels of adaptability and physical resilience.<br>
<span style="color:#e67e22;"><b>Final Assessment:</b> The humanoid sustains multiple injuries during testing but remains recoverable via medical capsule intervention.</span>
</div>
<div style="text-align: center;">[[Experimental data recorded|Juno2]]</div>
<<set $junoqa to true>>The purpose of this trial is to determine how much physical or biological stress the body can endure before exhaustion, injury, or complete system failure occurs. Adaptation alone is no longer the focus. To fully assess stress thresholds, Juno must be tested against a more aggressive subject. <n1>The Horse-Human is deemed ideal for the task.</n1>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\junotrial2.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.3; text-align: left;">
<b style="font-size: 16px; color:#1b4f5e;">ZCF: Stress Resistance Trial 1.0</b><br>
<b>Primary Subject:</b> <span style="color:#a55eea;">Juno (Humanoid)</span><br>
<b>Secondary Subject:</b> H-Human<br>
<b>Observation Result:</b> Under extreme stress and physical impact, the humanoid collapsed both physically and mentally after 1 hour and 13 minutes. The H-Human had to be neutralized via mind control intervention.<br>
<span style="color:#e67e22;"><b>Final Assessment:</b> The subject remained functional under significant load. Recovery is currently in progress within a medical capsule.</span>
</div>
<div style="text-align: center;">[[Experimental data recorded|Juno2]]</div>
<<set $junoqb to true>>In this trial, the objective is to determine when the body reaches exhaustion - where the physical threshold lies. As such, the secondary subject is not a violent or large-scale entity, as that would expose the humanoid to immediate and extreme stress.
Instead, this time, the test will involve other humanoids. Not one, but four. By confronting Juno with subjects of similar physical capacity, and increasing their number, the trial intensifies the demand gradually - pushing her stamina to its limits.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\junotrial3.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.3; text-align: left;">
<b style="font-size: 16px; color:#1b4f5e;">ZCF: Vital Threshold Trial</b><br>
<b>Primary Subject:</b> <span style="color:#a55eea;">Juno (Humanoid)</span><br>
<b>Secondary Subjects:</b> 4 Humanoids – identical physical profile<br>
<b>Observation Result:</b> Total exhaustion occurred after 3 hours and 17 minutes. Despite extended physical strain, no injuries were recorded due to matched attributes in strength, structure, and mobility.<br>
<span style="color:#e67e22;"><b>Final Assessment:</b> Subject displays high stamina under non-lethal but continuous pressure. Recovery phase initiated.</span>
</div>
<div style="text-align: center;">[[Experimental data recorded|Juno2]]</div>
<<set $junoqc to true>><img src="IMG\1\0071.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0071 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−14 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Unknown – data corrupted</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">This world is plagued by unstable spatial geometry and temporal anomalies. The surface appears pixelated and fractured, with constant glitches disrupting all scans.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0071">><img src="IMG\1\0072.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0072 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+37 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A corrupted planetary mass emitting irregular energy pulses. Its destabilized core and distorted surface structures suggest advanced deterioration. Believed to be the origin point of anomalies affecting surrounding systems. Approach with extreme caution.</span></div>
<div style="text-align: center;"> <a data-passage="0072a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0072">><img src="IMG\1\0072a.png" />
Entry into the planet’s atmosphere has <n2>failed</n2>. A consuming anomaly surrounding the planet prevents all approach. Visual data is only available through long-range scanners, revealing glimpses of its distorted surface and surprisingly active biosignatures.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\pixel1.mp4" type="video/mp4">
</video>
@@
What you’re seeing is not a malfunction of the <n1>Xal’Rynor</n1> displays. The lifeforms on this world are composed of what appear to be tiny square-shaped body parts. The anomaly may be the source. This world is entirely corrupted - perhaps because of this phenomenon. <n1>And it seems to be spreading</n1>. Even the neighboring planets, though lifeless, show signs of contamination.
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG\1\0073.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0073 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−21 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Unknown – data corrupted</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The planet is breaking apart under dark glitches. Parts of the ground fade in and out, and no clear signal can be received from the surface.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0073">><img src="IMG\1\0074.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0074 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+41 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Primitive humanoid civilization – moon settlements also observed</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A massive world with thick air and dozens of moons. Simple humanoid tribes live on the surface and on nearby moons.</span></div>
<div style="text-align: center;"> <a data-passage="0074a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0074">><img src="IMG\1\0074a.png" />
The planet’s massive size alone was reason enough to breach its atmosphere. These vast expanses seemed ideal for the rise of a widespread humanoid civilization - yet what you found was entirely unexpected. It wasn’t the number of humanoids that stunned you, but their sheer scale. <n1>Giants walk this world</n1> - beings of a magnitude you have never encountered before. They are worth studying, but unfortunately, without a molecular compression beam, there is no way to extract a specimen. Observation must therefore remain remote. Still, the situation inspires an idea - an experiment. You wonder how these towering humanoids would react to a standard-sized one. <n2>The test is dangerous.</n2> You may lose the subject. Whether the giants are hostile, view the smaller being as prey, or respond in an entirely unforeseen way, the result may be the same: <n2>the subject will not survive.</n2> The experiment comes at a cost.
<div style="display: flex; justify-content: center; gap: 50px; text-align: center; margin-top: 20px;">
<div><<if $male >= 1>>[[Send a male humanoid|Send a male humanoid1]]<<else>><n2>⚠ You need male humanoids</n2><</if>></div>
<div><<if $human >= 1>> [[Send a female humanoid]]<<else>><n2> ⚠ You need female humanoids </n2><</if>></div>
</div>
<div style="text-align: center;">[[Back|Bridge]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\giant.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 5px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.0; text-align: left;">
<b>PRIMARY SUBJECT:</b> Giant Humanoids <br>
<b>SECONDARY SUBJECT:</b> Female Humanoid<br><br>
<b>OBSERVATION RESULT:</b> The giants did not perceive the humanoid as hostile. Although no verbal communication occurred, they captured and examined the subject’s physical structure. Initial signs of interaction and curiosity were noted.<br><br>
<b style="color:#e74c3c;">FINAL ASSESSMENT:</b> The giant is not aggressive, it wants to initiate a mating process, but a size difference has led to an accidental lethal rupture of the subject's body.
</div>
<div style="text-align: center;">[[Back|0074]]</div>
<<set $human -= 1>><<if $pics7 is true>><div class="hover-image-wrapper"><img src="IMG/1/0075.png" class="main-image" alt="comics"><a data-passage="0075a" class="hover-link link-internal link-image"><img src="IMG/1/0075a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\00750.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0075 </span>
<b>TEMPERATURE:</b> <span style="color:#fff;">N/A</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">An abandoned probe floating through space, sending a constant distress signal of unknown origin.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $sos to true>>
<<set $lastvisit to "0075">><<if setup.helpSound is undefined>>
<<run setup.helpSound = new Audio("music/help.mp3")>>
<<run setup.helpSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.helpSound.play().catch(()=>{})>>
<img src="IMG\1\0076.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0076 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+4 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Present – humanoid forms detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A thick violet fog covers the planet. Shapes move within it, and strange distortions twist light and sound. The source of the anomaly is unknown.</span></div>
<<if $male5 is true>><div style="text-align: center;"> <a data-passage="0076a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0076">>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\0076a.mp4" type="video/mp4">
</video>
@@
You spot a lifeform unlike anything you’ve encountered before. Not even the <n1>Xal’Rynor</n1> database holds a trace of its existence. The creature darts through the forest and swiftly captures a male humanoid. You realize immediate intervention is necessary - not only because you require the humanoid alive, but because this unknown being must be secured for study. <n1>To do so, you must penetrate its mind - paralyze it from within and take it captive.</n1>
<div style="text-align: center;"> <a data-passage="0076a2" class="link-internal link-image"><img src="IMG\control2.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<img id="topImage" src="IMG/MG/scp/1/5.png" style="display: block; margin: 0; padding: 0;"><img id="bottomImage" src="IMG/MG/scp/2/5.png" style="display: block; margin: 0; padding: 0;">
<div style="text-align: center;">The <n2>creature</n2> is preoccupied with the humanoid. This gives you the opportunity to slip into its mind - all you need to do now is tune in and find <n2>the correct brainwave.</n2></div>
<div style="display: flex; justify-content: center; gap: 40px; margin-top: 20px;">
<div><input type="range" id="slider1" min="1" max="10" value="1" oninput="updateSliders()"></div><div><input type="range" id="slider2" min="1" max="10" value="1" oninput="updateSliders()"></div></div>
<div id="successBlock" style="display: none; text-align: center; margin-top: 20px;">
You've found the correct brainwave - [[now you can slip into its mind!]]
</div>
<script>
let successTimeout = null; // globális változó a timeout kezelésére
function updateSliders() {
const val1 = parseInt(document.getElementById("slider1").value);
const val2 = parseInt(document.getElementById("slider2").value);
const success = document.getElementById("successBlock");
document.getElementById("topImage").src = "IMG/MG/scp/1/" + val1 + ".png";
document.getElementById("bottomImage").src = "IMG/MG/scp/2/" + val2 + ".png";
if (val1 === 6 && val2 === 4) {
// Ne indíts új timeoutot, ha már van
if (!successTimeout) {
successTimeout = setTimeout(function () {
success.style.display = "block";
successTimeout = null; // visszaállítás, ha szükséges újraindítani
}, 2000);
}
} else {
if (successTimeout) {
clearTimeout(successTimeout);
successTimeout = null;
}
success.style.display = "none";
}
}
</script>
<<if setup.scpSound is undefined>>
<<run setup.scpSound = new Audio("music/scp.mp3")>>
<<run setup.scpSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.scpSound.play().catch(()=>{})>><img src="IMG\1\0076c.png" />
<n3>You got it! You caught it</n3> - or at least that’s what you thought. As you managed to break through the invisible wall protecting its mind, the connection seemed perfect for a moment. You had almost fully entered when the creature suddenly looked straight at you. Time stood still for a single second - <n3>then it vanished into thin air.</n3> Gone without a trace, as if it had never been there. It left behind only the humanoid. You didn’t manage to capture it… but at least you got a humanoid. You feel this won’t be your [[last encounter.|Bridge]]
<<if setup.scpSound && !setup.scpSound.paused>>
<<run setup.scpSound.pause()>>
<<run setup.scpSound.currentTime = 0>>
<</if>>
<<set $male += 1>> <<set $male5 to false>><img src="IMG\1\0077.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#e74c3c;"> 0077 </span>
<b>TEMPERATURE:</b> <span style="color:#fff;">Unknown</span>
<b>POPULATION:</b> <span style="color:#fff;">None – entity presence only</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A massive humanoid figure drifting near a dead star cluster. It consumes planets and leaves behind waves of darkness and chaos.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0077">><img src="IMG\1\0078.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0078 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">⚠ ERROR</span>
<b>POPULATION:</b> <span style="color:#c0392b;">⚠ ERROR</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A dark veil surrounds the planet. It allows entry but blocks all scans, leaving the world completely unmapped.</span></div>
<<if $human12 is true>><div style="text-align: center;"> <a data-passage="12human" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0078">><img src="IMG\1\0078a.png" />
<n1>The source of the anomaly has been located:</n1> an ancient castle built of black stone, radiating pulsing energy waves from its central spire. These pulses not only interfere with your ship’s sensors - they react to your approach as if the structure itself were alive. The nature of this magical construct cannot be analyzed remotely - <n1>you'll have to enter it to uncover the origin of its power.</n1>
<img src="IMG\1\0078b.png" />
Inside, you find a single humanoid. She lies on a low bed in her private chamber, her form barely concealed by the fabric she wears. She shows no fear - her gaze is steady, confident. That is no accident. <n3>She is the source.</n3> The energy signature that drew you here emanates from her, pulsing in rhythm with her presence. You sense it instinctively - if you want to understand or contain this force, you must capture her, and more importantly… <n3>penetrate her mind.</n3> You don’t give her the chance to react, to reshape the battlefield with raw power. You activate your psionic protocol without hesitation - the duel begins: [[a battle of minds]]
<<if setup.shwSound is undefined>>
<<run setup.shwSound = new Audio("music/shw.mp3")>>
<<run setup.shwSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.shwSound.play().catch(()=>{})>>
<img src="IMG\1\0078c.png" />
<div style="text-align: center;">Her confidence is oppressive - she's holding you back with sheer mental force. Yet you refuse to yield. You unleash your full neural capacity, pushing to <n1>breach her psychic defenses and seize control.</n1></div> <<set $value = 20>> <<set $intervalID = 0>> <<set $gameOver = false>> <style> #sliderDisplay {
width: 100%;
height: 25px;
background-color: #1d152d;
border: 1px solid #22133a;
border-radius: 5px;
margin-bottom: 10px;
position: relative;
overflow: hidden;
}
#sliderFill {
position: absolute;
top: 0;
left: 0;
height: 100%;
background-color: #0e0818;
width: 0%;
border-radius: 5px 0 0 5px;
transition: width 0.1s;
} </style>
<div id="sliderDisplay">
<div id="sliderFill"></div>
</div> <img src="IMG\1\spacek.png" />
<<script>>
(function() {
function updateDisplay() {
const fillElem = document.getElementById("sliderFill");
if (!fillElem) return;
const val = State.getVar("$value");
const fill = Math.max(0, Math.min(100, (val / 50) * 100));
fillElem.style.width = fill + "%";
}
function endGame(targetPassage) {
State.setVar("$gameOver", true);
clearInterval(State.getVar("$intervalID"));
State.setVar("$intervalID", 0);
Engine.play(targetPassage);
}
function startTicking() {
const id = setInterval(() => {
if (State.getVar("$gameOver")) {
clearInterval(id);
State.setVar("$intervalID", 0);
return;
}
let val = State.getVar("$value") - 4;
val = Math.max(0, val);
State.setVar("$value", val);
updateDisplay();
if (val <= 0) {
endGame("shloss");
}
}, 500);
State.setVar("$intervalID", id);
}
function onSpacePress(e) {
if (e.code !== "Space" || State.getVar("$gameOver")) return;
let val = State.getVar("$value") + 2;
if (val >= 50) {
val = 50;
State.setVar("$value", val);
updateDisplay();
endGame("shwin");
return;
}
State.setVar("$value", val);
updateDisplay();
}
if (!window._elmeharcListenerAdded) {
document.addEventListener("keydown", onSpacePress);
window._elmeharcListenerAdded = true;
}
setTimeout(() => {
updateDisplay();
startTicking();
}, 10);
})();
<</script>>
<<if setup.batleSound is undefined>><<run setup.batleSound = new Audio("music/batle.mp3")>><<run setup.batleSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.batleSound.play().catch(()=>{})>>It enraged you - the way she resisted, the energy it cost to finally disarm her. Driven by fury, you lunged at her, your mind having already paralyzed every function of her body. Your tendrils coil around her head and neck as your hand clamps down on her skull, lifting her into the air while you <n3>penetrate her mind - fully, irreversibly.</n3> You search through her body, her brain, for the source of her power… but find nothing. The strength didn’t come from her. It came from this place - this planet. She was merely a conduit. A vessel. <n3>Just another humanoid, like all the rest.</n3>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\shwin.mp4" type="video/mp4">
</video>
@@
Or… perhaps not. Instead of destroying her, you begin to stimulate her brain - precisely as you once did in laboratory trials. You activate the regions responsible for oxytocin and dopamine production. <n3>The response is immediate - her body reacts.</n3> And you feel it. You feel that this is the moment. The moment to do what, until now, you’ve only observed. What you’ve only studied, measured, recorded - now, for the first time, <n3>you cross the line from observer to executor.</n3> Your tentacle penetrates deep into her throat and then your genitals into her humanoid vagina. You feel the hot and wet sensation, which was completely foreign to you until now. You feel it and begin to understand why humanoids have such a great effect on other species. <n3>Their bodies offer you and everyone else a unique and galactic pleasure. </n3>
<div style="text-align: center;">You collected the [[exhausted humanoid|Ship]]</div>
<<set $human12 to false>>
<<set $human += 1>>
<<set $mindIdx = (typeof $mindIdx === "number") ? (($mindIdx % 4) + 1) : 1>>
<<set _roll = $mindIdx>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind1.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind2.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind3.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind4.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 5>>
<!-- üres, nem indul semmi -->
<</switch>>
<img src="IMG\1\shloss.png" />
Almost unbelievable! <n3>But you lost!</n3> You were defeated in a battle of minds. You may have lost the battle, but you will not lose the war. You gather all your strength and you're ready - ready to:
[[Face the Humanoid again|a battle of minds]]
[[Leave the planet|Bridge]]
<<if setup.batleSound && !setup.batleSound.paused>><<run setup.batleSound.pause()>><<run setup.batleSound.currentTime = 0>><</if>>
<<if setup.shlSound is undefined>>
<<run setup.shlSound = new Audio("music/shlost.mp3")>>
<<run setup.shlSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.shlSound.play().catch(()=>{})>>
<img src="IMG\1\0079.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#b87333;"> 0079 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−270 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Wreckage of a Zenthari vessel found adrift in frozen space. No distress call, no log, no clue of what occurred.</span>
</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0079">><img src="IMG\1\0080.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#6fa8dc;"> 0080 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+14 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">One sentient entity – <n1>The Moon Warden</n1></span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A hidden Moon Shrine guarded by an ancient being of light. It dwells within a vast crescent moon, behind walls of glowing runes.</span></div>
<div style="text-align: center;"> <a data-passage="shrine" class="link-internal link-image"><img src="IMG\shrine.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.shrineSound is undefined>>
<<run setup.shrineSound = new Audio("music/shrine.mp3")>>
<<run setup.shrineSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.shrineSound.play().catch(()=>{})>>
<<set $lastvisit to "0080">>
<<set $b080 to true>><img src="IMG\1\rinna.png" />
You step out of your ship, and your foot touches the glowing white void. The emptiness solidifies around the Shrine, forming stairs that lead to its entrance. You follow the luminous path and enter the Moon Shrine, where the guardian of galactic knowledge - <n1>the Moon Warden</n1> - awaits you. You’ve known of their existence, but this is the first time you've stood before one. She is a being who commands the respect of even a Zenthari, and so you greet her with a bow. She responds with her name: <n1>Rinna, the Moon Warden.</n1> She is the one who can aid you in your mission, so you speak openly - without secrets, without tactics. You tell her why you have come. The Warden does not judge. To her, there is no good or evil. She offers her wisdom to any who can meet her price. She is the one who knows the answer to the question, but first you have to pay the price.
<img src="IMG\1\rinna2.png" />
Your question is simple: <n1>Where can you find Yako?</n1> The Warden knows the answer - but she will only reveal it in exchange for a price. She demands <n1>a young, untouched male humanoid</n1> - pure of body and mind. According to her, such a specimen can be found on this very plane where the Moon Shrine rests.
<div style="text-align: center;"><<if $puremaleg is true>>[[Hand over the humanoid]]<</if>></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $yakoStage to 2>>
<<set $puremale to true >>
<<if $warden is true>><<goto "shrine2">><<set $puremale to false >><</if>>
<<set $yakoStage to 2>><img src="IMG\1\yako1.png" />
<div style="border: 2px solid #2585a6; padding: 12px; color: #2585a6; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>Name:</b> <n3>YAKO</n3><br>
<b>Type:</b> <n3>Spirit-Animal</n3><br>
<b>Habitat:</b> <n2>Unknown</n2><br>
<b>Summoning:</b> <n2>Unknown</n2><br>
<b>Containment:</b><n2>Unknown</n2><br>
<b>Location Range:</b> <n2>Unknown</n2><br>
<b>Note:</b> Knowledge must be obtained from other sources. </div>
<div style="text-align: center; font-size: 28px; color: #25737d; font-weight: bold;"> Mission status</div>
<div style="text-align: center;"><<switch $yakoStage>>
<<case 1>>Locate an <n1>external information source</n1><<case 2>>Help the <n1>Moon Warden</n1> in exchange for information<<case 3>>You will find the Yako on <n1>Planet 0088</n1><<case 4>>Return to the <n1>Warden for guidance.</n1><<case 5>>You can find <n1>a shaman</n1> in the great cities. <<case 6>>
Return to <n1>Planet 0088</n1> <<case 7>><img src="IMG\1\captured.png" /><</switch>></div>
<div style="text-align: center;">[[Back|Quests]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\1\0084.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#f1c40f;"> 0084 </span>
<b>TEMPERATURE:</b> <span style="color:#fff;">N/A</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">An autonomous probe drifting in deep space. It sends a constant distress signal, its surface glowing with pulsing plasma veins. The message remains undecoded.</span></div>
<<if $puremale is true>><div style="text-align: center;"> <a data-passage="0084a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0084">><img src="IMG\1\0084a.png" />
You thought it through and came up with an idea on how to find a suitable humanoid for the Warden. A pure and untouched humanoid is needed. In a world where infection spreads, corruption is everywhere, and darkness seeps into all things, the easiest way to find such <n3>a being is to set a trap - one that is also a trial.</n3> Whoever is able to resist the trap and endure the trial will be the right candidate. To do this, you will need at least <n3>three female humanoids.</n3> The simplest way is <n3>to search for them on this planet,</n3> and with the help of your mind control, use them to set the trap.<div style="text-align: center;"> <a data-passage="puremale" class="link-internal link-image"><img src="IMG\control2.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG\1\0084b.png" />
The <n3>Xal’Rynor</n3> amplifies your ability, but even so, it takes tremendous effort: placing humanoids under simultaneous mind control across such a vast area - and at such distances from one another - <n3>proves to be a true challenge, even for you.</n3>
<style>
#slotContainer {
display: flex;
justify-content: center;
gap: 40px;
margin-bottom: 20px;
}
.slotColumn {
width: 60px;
height: 60px;
font-size: 36px;
background-color: #222;
color: #fff;
font-family: monospace;
display: flex;
justify-content: center;
align-items: center;
border: 2px solid #555;
border-radius: 8px;
}
#slotMessage {
text-align: center;
font-weight: bold;
font-size: 18px;
color: white;
}
</style>
<div id="slotContainer">
<div class="slotColumn" id="col1">?</div>
<div class="slotColumn" id="col2">?</div>
<div class="slotColumn" id="col3">?</div>
</div>
<div id="slotMessage">Press SPACE to stop the columns</div>
<div style="text-align: center;">[[Back|0084a]]</div>
<<script>>
(function () {
const symbols = ["A", "B", "C", "D", "E", "F", "G", "H", "X", "Z"];
let columns = [[], [], []];
let intervals = [];
let stopped = [false, false, false];
let stopCount = 0;
let stopIndex = 0;
function shuffle(arr) {
let a = arr.slice();
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
function prepareColumns() {
for (let i = 0; i < 3; i++) {
let set = shuffle(symbols);
set = set.filter(c => c !== "X");
set.splice(5, 0, "X"); // X mindig 6. pozíción
columns[i] = set;
}
}
function clearAllIntervals() {
for (let i = 0; i < intervals.length; i++) {
clearInterval(intervals[i]);
}
intervals = [];
}
function startSpin() {
for (let i = 0; i < 3; i++) {
let index = 0;
const colId = "col" + (i + 1);
const elCol = document.getElementById(colId);
if (!elCol) continue;
intervals[i] = setInterval(() => {
const el = document.getElementById(colId);
if (!el) return;
const val = columns[i][index];
el.innerText = val;
el.style.color = val === "X" ? "#e6c945" : "#fff";
index = (index + 1) % columns[i].length;
}, 450);
}
}
function stopSpin(col) {
clearInterval(intervals[col]);
stopped[col] = true;
stopCount++;
if (stopCount === 3) {
checkWin();
}
}
function checkWin() {
const vals = [1, 2, 3].map(i => {
const el = document.getElementById("col" + i);
return el ? el.innerText : "";
});
const success = vals.every(v => v === "X");
const msg = document.getElementById("slotMessage");
if (success) {
msg.innerHTML = "Success! Unlocking...";
msg.style.color = "white";
setTimeout(function () {
if (typeof Engine !== "undefined" && typeof Engine.play === "function") {
Engine.play("purehu");
}
}, 1000);
} else {
msg.innerHTML = "Failure. <br>Press <strong>R</strong> to retry.";
msg.style.fontSize = "22px";
msg.style.color = "#ff4c4c";
}
}
function resetGame() {
clearAllIntervals();
columns = [[], [], []];
stopped = [false, false, false];
stopCount = 0;
stopIndex = 0;
const msg = document.getElementById("slotMessage");
if (msg) {
msg.innerText = "Press SPACE to stop the columns";
msg.style.color = "white";
msg.style.fontSize = "18px";
}
prepareColumns();
startSpin();
}
function keyHandler(e) {
if (e.code === "Space") {
if (stopIndex < 3) {
stopSpin(stopIndex);
stopIndex++;
}
} else if (e.code === "KeyR") {
resetGame();
}
}
window.addEventListener("keydown", keyHandler);
// Automatikus indulás kis késleltetéssel (DOM biztosan betölt)
setTimeout(() => {
prepareColumns();
startSpin();
}, 0);
})();
<</script>>
<<if setup.mg1Sound is undefined>><<run setup.mg1Sound = new Audio("music/mg1.mp3")>><<run setup.mg1Sound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.mg1Sound.play().catch(()=>{})>>1@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\threeg.mp4" type="video/mp4">
</video>
@@ You used your mind control to get all three humanoids to remove their clothes. You then gave them the courage <n3>to start walking naked down the street.</n3> Now, all you have to do is observe the males around your humanoid using your sensors. Their brain activity, physiological responses, and behavior will reveal which one is the right choice. So now, just wait and watch as they walk down the path - <n3>and wait for something to happen.</n3><style>
#bigSlider {
width: 866px;
-webkit-appearance: none;
background: transparent;
margin: 60px auto;
display: block;
}
#bigSlider::-webkit-slider-runnable-track {
height: 10px;
background: #e6c945 !important;
border: none;
border-radius: 5px;
}
#bigSlider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 128px;
height: 128px;
background: url("IMG/walker_large.png") no-repeat center center;
background-size: contain;
border: none;
cursor: default;
margin-top: -67px;
}
#bigSlider:disabled {
opacity: 1;
}</style>
<input type="range" id="bigSlider" min="0" max="1555" value="0" disabled>
<script>
(function () {
const slider = document.getElementById("bigSlider");
if (!slider) return;
const speed = 0.3;
let paused = false;
// Globális slider állapot
window._sliderState = window._sliderState || {
value: 0,
triggered: {
500: false,
1000: false,
1500: false
}
};
let value = window._sliderState.value;
function jumpTo(passageName) {
console.log("Jumping to:", passageName);
if (typeof Engine !== "undefined" && typeof Engine.play === "function") {
Engine.play(passageName);
} else if (typeof SugarCube !== "undefined" && typeof SugarCube.Engine.play === "function") {
SugarCube.Engine.play(passageName);
} else {
alert("Hiba: nem tudok átlépni a passage-ra. Engine.play nem elérhető.");
}
}
function animate() {
if (paused) return;
value += speed;
if (value > 1555) value = 1555;
slider.value = value;
window._sliderState.value = value;
// 500
if (value >= 500 && !window._sliderState.triggered[500]) {
paused = true;
window._sliderState.triggered[500] = true;
console.log("Reached 500 - preparing to jump");
setTimeout(() => jumpTo("walkevent1"), 2000);
return;
}
// 1000
if (value >= 1000 && !window._sliderState.triggered[1000]) {
paused = true;
window._sliderState.triggered[1000] = true;
console.log("Reached 1000 - preparing to jump");
setTimeout(() => jumpTo("walkevent2"), 2000);
return;
}
// 1500
if (value >= 1500 && !window._sliderState.triggered[1500]) {
paused = true;
window._sliderState.triggered[1500] = true;
console.log("Reached 1500 - preparing to jump");
setTimeout(() => jumpTo("walkevent3"), 2000);
return;
}
requestAnimationFrame(animate);
}
requestAnimationFrame(animate);
})();
</script>
<<if setup.mg1Sound && !setup.mg1Sound.paused>><<run setup.mg1Sound.pause()>><<run setup.mg1Sound.currentTime = 0>><</if>><img src="IMG\1\walke1.png" />
<n3>The first humanoid walks through an outer district of the city.</n3> The streets here are less crowded, with fewer residential buildings and more warehouses and industrial structures. From one of the alleys, a man steps out, drawn by the unusual sight. His heart rate remains within normal range - he shows no sign of nervousness or confusion at what he sees. Scans indicate that the limbic system, specifically the amygdala, is currently active in his brain. Based on these readings, he does not appear to be the chosen one. <n3>This assumption is confirmed as your humanoid approaches him.</n3>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\walke1a.mp4" type="video/mp4">
</video>
@@
He’s been given an opportunity - and he’d be a fool not to take it. He acts on impulse, proving that he is not <n3>the "pure" humanoid</n3> you're looking for. And so, you return to [[observation|purehu]]<img src="IMG\1\walke2.png" />
<n3>Your second humanoid walks through the city center.</n3> The street is packed with people - many notice the figure, but only two male humanoids actually engage. Their biological indicators are similar to the previous case. They approach the humanoid, who to them appears confused or disoriented, and offer assistance. They point to a nearby building and say they can provide some clothes there. Could they be the "pure" humanoids? <n3>No... not at all.</n3> Beneath the appearance of kindness lies something darker - a hidden intent that will soon reveal itself.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\walke2a.mp4" type="video/mp4">
</video>
@@
They are not the "pure" humanoids. In fact, they are the furthest from it - <n3>saturated with the essence of dark corruption.</n3> Their very presence, the situation, their positioning... this moment itself is all the proof you need. They are not the ones you're looking for. And so, you return to [[observation.|purehu]]<img src="IMG\1\walke3.png" />
The man spots the humanoid - <n3>his heart rate instantly doubles, brain activity spikes.</n3> Signs of confusion and nervousness are evident. It’s an unexpected situation, but something compels him to help. He removes his jacket and offers it to the humanoid, suggesting they use it to cover themselves. As they speak, his anxiety intensifies. He averts his gaze, unable to maintain direct eye contact. His face flushes red - it’s likely he has never seen anything like this in person. Could he be the one? <n3>He might be.</n3> At the very least... [[he's worth testing.]]<img src="IMG\1\0001e.png" />
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PROCESS: UPLINK</b><br>
<span style="color:#28a745;"><b>STATUS: SUCCESS</b></span><br>
<b>SUMMARY:</b> Targeted lifeform successfully elevated via Graviton Beam.<br>
</div>
<div style="text-align: center;">[[Back|Bridge]]</div><<if setup.sugarSound is undefined>>
<<run setup.sugarSound = new Audio("music/sugar.mp3")>>
<<run setup.sugarSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.sugarSound.play().catch(()=>{})>>
<<set $puremaleg to true>><img src="IMG\1\rinna.png" />
<div style="text-align: center;">Inside, only one person awaited you: <n1>Rinna, the Moon Warden.</n1> Guardian of galactic knowledge. The Warden can answer your questions - but neither she nor her kind offer anything for free. <n1>Knowledge has a price</n1> and it is the Warden who names it.<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;"><a data-passage="AskWarden" class="link-internal link-image"><img src="IMG/1/mw1.png" alt="AskWarden" style="width: 200px;"></a><a data-passage="LookWarden" class="link-internal link-image"><img src="IMG/1/mw2.png" alt="LookWarden" style="width: 200px;"></a><a data-passage="Bridge" class="link-internal link-image"><img src="IMG/1/mw3.png" alt="Bridge" style="width: 200px;"></a>
</div></div>
<<if $junoq2 is true>> <<goto "junoq2">><</if>><img src="IMG\1\warden.png" />
The <n1>Warden’s</n1> power transcends time and space. Her presence is not bound by dimension or law - she may manifest in any corner of the universe where a question is asked. <n1>You may ask her anything… and she will know the answer.</n1>
<div style="text-align: center;"><<link "Ask them where to find the Yako">>
<<replace "#yakoreveal">>At first, <n1>only the rune</n1> on her face begins to glow - then her entire aura ignites, and the <n1>Moon Shrine</n1> itself shines in unison. A translucent, crystal-like resonance fills the air - as if the entire space had merged into a ringing of glass. Then, the answer reaches you: You will find the <n1>Yako on Planet 0088.</n1> Scanners are of no use. The <n1>Yako</n1> dwells deep within the ancient and sacred forest called <n1>Nareth'Syl.</n1> You must enter the woodland to find it.<</replace>> <</link>><div id="yakoreveal"></div><<if $yakoq2 is true>><<link "How can I catch the Yako?">> <<replace "#yakoreveal2">> The Warden told you that <n1>the worst mistake has already been made</n1>. You allowed the Yako to encounter a strong creature. It has now absorbed that being’s life force and <n1>taken on its form</n1>. In that shape, it can now fight back against you. There is only one way to capture it: you must drain its energy - strip it of every form it has taken. But you cannot do this alone. <n1>Only a shaman in your team</n1> can perform such a task. Only they hold the power to unbind a spirit like the Yako.
<</replace>>
<</link>>
<div id="yakoreveal2"></div>
<</if>>
<div style="text-align: center;">[[Back|shrine2]]</div>
<<if $yakoStage is 2 >><<set $yakoStage to 3>><</if>>
<<if $yakoq2 is true>><<set $yakoStage to 5>><</if>> <<if $yakoq2 is true>><<set $yakoq3 to true>><</if>>
<<set $yakoqu to true>>
<<if setup.waSound is undefined>>
<<run setup.waSound = new Audio("music/ward.mp3")>>
<<run setup.waSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.waSound.play().catch(()=>{})>><<set $videoIndex to (typeof $videoIndex === "number") ? ($videoIndex + 1) % 4 : 0>><<switch $videoIndex>>
<<case 0>>
@@.vid;
<video controls autoplay loop width="100%">
<source src="IMG/VID/pw1.mp4" type="video/mp4">
</video>
@@
<<case 1>>
@@.vid;
<video controls autoplay loop width="100%">
<source src="IMG/VID/pw2.mp4" type="video/mp4">
</video>
@@
<<case 2>>
@@.vid;
<video controls autoplay loop width="100%">
<source src="IMG/VID/pw3.mp4" type="video/mp4">
</video>
@@
<<case 3>>
@@.vid;
<video controls autoplay loop width="100%">
<source src="IMG/VID/pw4.mp4" type="video/mp4">
</video>
@@<</switch>>
It seems the Warden is spending all her free time with the humanoid. <n1>So… is that why she needed him?</n1> Was she simply lonely in this place, all alone? In a way, it makes sense - the Warden is bound to this place, chained to it. She can never leave. From her perspective, that’s eternity, since time holds no power over her. The question is: how long will the humanoid last? <n1>The time he spends here will be… intense.</n1>
<div style="text-align: center;">[[Back|shrine2]]</div><img src="IMG\1\purem.png" />
You hand over the helpless, levitating humanoid to the Warden. <n1>Though she appears fragile, she cradles the being in her arms without effort.</n1> Without even acknowledging your presence, she immediately begins whatever purpose she had in mind for the humanoid.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\rannih.mp4" type="video/mp4">
</video>
@@
You stand there and watch. As you do, your thoughts drift to why it was so important for her that the humanoid be <n1>pure and untouched</n1> - when it is now she <n1>who corrupts him, defiles him.</n1> The question lingers in your mind, but you don’t speak. It doesn’t matter to you what she does with him. <n1>You just want your answers.</n1> The humanoid tries to rise, but the Warden effortlessly restrains him with all four of her arms. She takes what she wants, and when she is done, her aura flares - blue lights flash across her form before slowly fading. It seems as though she has drawn [[strength from him.|shrine2]]
<<set $puremale to false>>
<<set $warden to true>><img src="IMG\1\0081.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0081 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+27 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A strange banana-shaped world with living, brain-like patterns on its surface. Believed to be an artificial creation of <n3>the brainrot sentinels</n3>.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0081">><img src="IMG\1\0082.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0082 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+60 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid population nearly extinct</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Vast regions burn under waves of molten fire and dark energy. The few who survived hide from the spreading demonic force consuming the planet.</span></div>
<div style="text-align: center;"> <a data-passage="0082a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0082">>
<<if setup.ghostSound is undefined>>
<<run setup.ghostSound = new Audio("music/ghost.mp3")>>
<<run setup.ghostSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.ghostSound.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\subship1.mp4" type="video/mp4">
</video>
@@
It seems she made her choice - and judging by the look on her face, she chose well. There's not even the faintest trace of boredom in her expression. Still, this isn’t a challenge for her. Just a pleasant way to pass the time. When it's over, she thanks you for your help. <n2>She assures you that this won’t be the last time you meet.</n2> Then, in the blink of an eye, she vanishes - leaving nothing behind but the heavy silence… <n2>and your centaur, collapsed and utterly exhausted.</n2>
<div style="text-align: center;">[[Back|Lab]]</div>
<<set $subship to false>><img src="IMG\1\0082a.png" />
On the planet where the demonic force is beginning to spread, you're greeted by a familiar face - <n2>Sucubus,</n2> whom you’ve encountered before. She recognizes you instantly, and in this unexpected reunion, she sees a potential solution to her own problem. According to her, you might be able to help with something... rather simple. She's <n2>bored</n2>. This world no longer offers her any amusement. But you - you possess creatures unlike anything she's seen here. Now she has a request: <n2>“Let me travel with you for a few hours - and let me have a little fun with one of your creatures.”</n2> Will you agree to this? Will you allow Subus aboard your ship?
<div style="text-align: center;"> [[Let Subus into the lab]]
[[Decline the offer and return to the ship|Bridge]]</div>
<<if setup.laugSound is undefined>>
<<run setup.laugSound = new Audio("music/laug.mp3")>>
<<run setup.laugSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.laugSound.play().catch(()=>{})>><img src="IMG\lab.png" />
You enter the ship, and lead her to the lab. There, you introduce her to your creatures - your experimental subjects. She observes them closely, intrigued. But she hesitates. Choosing isn’t easy. She turns to you and says:<n2>“I need a moment to think.”</n2> So, you leave her alone.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $subship to true>><<if $pics16 is true>><img src="IMG\1\0083.png" />
As you fly through the asteroid field, you notice a <n3>small ship</n3> quietly moving, hiding behind the meteors. It conceals itself from the world. The type of vessel is not unfamiliar to you, so you know exactly what it is carrying - <n3>a work of art.</n3> A valuable galactic painting. Perhaps it’s worth taking the time to acquire it.
<div style="text-align: center;">[[Shoot down the spaceship|You dive in.]]</div>
<<else>><img src="IMG\1\00830.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0083 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−156 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A dense and unstable asteroid field drifting across the sector. Constant collisions and shifting debris make navigation highly dangerous. No biosignatures detected. Mining potential remains uncertain due to extreme instability.</span></div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0083">><style>
.ctc-wrap { margin:0 !important; padding:0 !important; }
.ctc-wrap * { margin:0; box-sizing:border-box; }
.ctc-stage{ display:grid; place-items:center; margin:0; }
/* Vászon: max 1260px széles, 21:9 képarány; belső felbontás 1260x540 */
#ctc-canvas{
background:#000;
border:4px solid #0b2430;
width:min(1260px,100%);
aspect-ratio:21/9;
height:auto;
image-rendering:optimizeSpeed;
display:block;
}
.ctc-hud{
color:#fff;
font-family:Rajdhani, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
display:flex; flex-direction:column;
gap:4px; margin-top:6px;
line-height:1.25; text-align:center;
}
.ctc-hud .time{ font-weight:700; font-size:18px; }
.ctc-hud .instr{ font-size:16px; opacity:.95; }
</style><div class="ctc-wrap" id="ctc-root">
<div class="ctc-stage">
<canvas id="ctc-canvas" width="1260" height="540"></canvas>
</div>
<div class="ctc-hud"><div class="time">Time remaining before it flees: <span id="ctc-time">15</span>s</div><div class="instr">Disable the fleeing ship's thrusters. Use <strong>WASD</strong> or <strong>Arrow keys</strong> to aim and intercept.</div></div></div>
<script>
(function(){
// ===== Single-instance guard & cleanup =====
(function ensureSingleton(){
if (!window.__CTC) window.__CTC = {};
const inst = window.__CTC.instance;
if (inst && typeof inst.cleanup === 'function') {
try { inst.cleanup(); } catch(e){}
}
})();
// ===== Basic engine goto (no alerts, cross-browser) =====
function gotoPassage(name){
var target = String(name || "");
setTimeout(function(){
try { if (window.SugarCube && SugarCube.Engine && typeof SugarCube.Engine.play === 'function') { SugarCube.Engine.play(target); return; } } catch(e){}
try { if (window.Engine && typeof Engine.play === 'function') { Engine.play(target); return; } } catch(e){}
try { window.location.hash = '#passage-' + encodeURIComponent(target); } catch(e){}
}, 0);
}
// ===== Polyfills (light) =====
if (!window.performance || !performance.now){
window.performance = window.performance || {};
performance.now = function(){ return Date.now(); };
}
// ===== Game config =====
var TIME_LIMIT = 15;
var PLAYER_RADIUS = 14;
var SHIP_RADIUS = 18;
var SHIP_BASE_SPEED = 120;
var SHIP_FLEE_MULT = 2.4;
var COLLIDE_DIST = PLAYER_RADIUS + SHIP_RADIUS - 2;
var CANVAS_W = 1260, CANVAS_H = 540;
// ===== DOM =====
var canvas = document.getElementById('ctc-canvas');
var timeLbl = document.getElementById('ctc-time');
if (!canvas || !canvas.getContext){ return; }
var ctx = canvas.getContext('2d');
// ===== State =====
var lastT = performance.now();
var timeLeft = TIME_LIMIT;
var rafId = null;
var running = true;
var player = { x: CANVAS_W/2, y: CANVAS_H/2 };
var ship = { x: CANVAS_W*0.75, y: CANVAS_H*0.55, vx:0, vy:0, speed: SHIP_BASE_SPEED };
// ===== Input (with removeable handlers) =====
var keys = Object.create(null);
function onKeyDown(e){ keys[(e.key||'').toLowerCase()] = true; }
function onKeyUp(e){ keys[(e.key||'').toLowerCase()] = false; }
window.addEventListener('keydown', onKeyDown);
window.addEventListener('keyup', onKeyUp);
// ===== Utils =====
function clamp(v,a,b){ return Math.max(a, Math.min(b, v)); }
function dist(ax,ay,bx,by){ var dx=ax-bx, dy=ay-by; return Math.hypot ? Math.hypot(dx,dy) : Math.sqrt(dx*dx+dy*dy); }
function drawBackground(){
ctx.fillStyle = '#05070a';
ctx.fillRect(0,0,CANVAS_W,CANVAS_H);
ctx.fillStyle = 'rgba(255,255,255,0.035)';
for(var i=0;i<80;i++){
var x=(i*53)%CANVAS_W, y=(i*91)%CANVAS_H;
ctx.fillRect(x,y,1,1);
}
ctx.strokeStyle = 'rgba(158,216,255,0.06)';
ctx.lineWidth = 1;
var step = 60;
ctx.beginPath();
for(var gx=0; gx<=CANVAS_W; gx+=step){ ctx.moveTo(gx,0); ctx.lineTo(gx,CANVAS_H); }
for(var gy=0; gy<=CANVAS_H; gy+=step){ ctx.moveTo(0,gy); ctx.lineTo(CANVAS_W,gy); }
ctx.stroke();
}
function drawPlayer(){
ctx.save(); ctx.translate(player.x, player.y);
ctx.beginPath(); ctx.strokeStyle='#ffffff'; ctx.lineWidth=2;
ctx.arc(0,0,PLAYER_RADIUS,0,Math.PI*2); ctx.stroke();
ctx.beginPath();
ctx.moveTo(-PLAYER_RADIUS-6,0); ctx.lineTo(-6,0);
ctx.moveTo( PLAYER_RADIUS+6,0); ctx.lineTo( 6,0);
ctx.moveTo(0,-PLAYER_RADIUS-6); ctx.lineTo(0,-6);
ctx.moveTo(0, PLAYER_RADIUS+6); ctx.lineTo(0, 6);
ctx.stroke(); ctx.restore();
}
function drawShip(){
ctx.save(); ctx.translate(ship.x, ship.y);
ctx.beginPath(); ctx.fillStyle='rgba(255,160,60,0.08)';
ctx.arc(0,0,SHIP_RADIUS+10,0,Math.PI*2); ctx.fill();
ctx.beginPath(); ctx.fillStyle='#ff9a2a';
ctx.arc(0,0,SHIP_RADIUS,0,Math.PI*2); ctx.fill();
ctx.strokeStyle='#402200'; ctx.lineWidth=2; ctx.stroke();
ctx.restore();
}
function flashColor(color, frames, cb){
var f=0;
(function _flash(){
ctx.fillStyle = color;
ctx.globalAlpha = 0.18 * (1 - f/frames);
ctx.fillRect(0,0,CANVAS_W,CANVAS_H);
ctx.globalAlpha = 1;
f++;
if (f <= frames) requestAnimationFrame(_flash);
else if (cb) cb();
})();
}
// ===== Core Loop =====
function step(now){
if(!running) return;
var dt = Math.min(0.05, (now - lastT) / 1000);
lastT = now;
// player move
var speedKB = 280, mvx=0, mvy=0;
if(keys['arrowleft']||keys['a']) mvx=-1;
if(keys['arrowright']||keys['d']) mvx= 1;
if(keys['arrowup']||keys['w']) mvy=-1;
if(keys['arrowdown']||keys['s']) mvy= 1;
if(mvx||mvy){
var len=Math.sqrt(mvx*mvx+mvy*mvy)||1;
player.x += (mvx/len)*speedKB*dt;
player.y += (mvy/len)*speedKB*dt;
player.x = clamp(player.x, 0, CANVAS_W);
player.y = clamp(player.y, 0, CANVAS_H);
}
// AI
var d = dist(player.x, player.y, ship.x, ship.y);
var targetVX=0, targetVY=0;
if(d < 240){
targetVX = ship.x - player.x;
targetVY = ship.y - player.y;
var len2 = Math.sqrt(targetVX*targetVX + targetVY*targetVY) || 1;
var flee = (d < 90) ? SHIP_FLEE_MULT : 1.35;
targetVX = (targetVX/len2)*ship.speed*flee;
targetVY = (targetVY/len2)*ship.speed*flee;
} else {
targetVX = ship.vx + (Math.random()-0.5)*12;
targetVY = ship.vy + (Math.random()-0.5)*12;
var len3 = Math.sqrt(targetVX*targetVX + targetVY*targetVY) || 1;
targetVX = (targetVX/len3)*ship.speed*0.7;
targetVY = (targetVY/len3)*ship.speed*0.7;
}
ship.vx += (targetVX - ship.vx)*6*dt;
ship.vy += (targetVY - ship.vy)*6*dt;
ship.x += ship.vx*dt;
ship.y += ship.vy*dt;
// bounds
if(ship.x < 20){ ship.x=20; ship.vx=Math.abs(ship.vx)*0.85; }
if(ship.x > CANVAS_W-20){ ship.x=CANVAS_W-20; ship.vx=-Math.abs(ship.vx)*0.85; }
if(ship.y < 20){ ship.y=20; ship.vy=Math.abs(ship.vy)*0.85; }
if(ship.y > CANVAS_H-20){ ship.y=CANVAS_H-20; ship.vy=-Math.abs(ship.vy)*0.85; }
// win
if(d <= COLLIDE_DIST){
running=false; if(rafId) cancelAnimationFrame(rafId);
// villanás tetszés szerint kikapcsolható: csak gotoPassage('Winner') is elég
flashColor('#88ff88', 8, function(){ gotoPassage('Winner'); });
return;
}
// time
timeLeft -= dt;
if (timeLbl) timeLbl.textContent = Math.ceil(Math.max(0, timeLeft));
if(timeLeft <= 0){
running=false; if(rafId) cancelAnimationFrame(rafId);
flashColor('#ff6666', 10, function(){ gotoPassage('GameOver'); });
return;
}
// render
drawBackground();
drawShip();
drawPlayer();
rafId = requestAnimationFrame(step);
}
// ===== Start & store instance for safe re-entry =====
lastT = performance.now();
rafId = requestAnimationFrame(step);
// expose cleanup so next run can dispose the previous safely
window.__CTC.instance = {
cleanup: function(){
try { running = false; } catch(e){}
try { if (rafId) cancelAnimationFrame(rafId); } catch(e){}
try { window.removeEventListener('keydown', onKeyDown); } catch(e){}
try { window.removeEventListener('keyup', onKeyUp); } catch(e){}
}
};
})();
</script>
<<set $pics16 to false>><img src="IMG\1\0083a.png" />
You have successfully hit the target. The engine was damaged, but the ship was not destroyed. This allowed you to seize its cargo intact - none other than a <n1>Galactic Canvas.</n1> A durable material, designed for artistic creations, capable of preserving its content even against the harsh conditions of space. Aboard your spaceship, you can unveil the image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.meteorSound && !setup.meteorSound.paused>>
<<run setup.meteorSound.pause()>>
<<run setup.meteorSound.currentTime = 0>>
<</if>>
<<set $pics +=1>><img src="IMG\1\0083b.png" />
You <n2>failed</n2> to hit the ship, allowing it to perform a hyperspace jump and escape. Although this opportunity has slipped away, perhaps in the future you will have another chance to capture one.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.meteor2Sound is undefined>><<run setup.meteor2Sound = new Audio("music/meteor2.mp3")>><<run setup.meteor2Sound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.meteor2Sound.play().catch(()=>{})>><img src="IMG\1\0085.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0085 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+16 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Cannot be assessed</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A massive warship drifting silently. No visible damage, yet all systems are dead - the fault seems to come from within.
<<if $sos is true>> <n1>This is the ship that sent the distress signal found in probe 0075.</n1><</if>></span>
</div>
<<if $human13 is true>><div style="text-align: center;"> [[Initiate docking]]</div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0085">>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sos.mp4" type="video/mp4">
</video>
@@You only had to take a few steps inside the ship before you found the sole survivor - alongside the creature responsible for all the chaos. It had wiped out the crew, and now it was moments away from claiming its final victim. But you still have a chance.<n1>You must enter the creature’s mind…</n1> and stop it, if you hope to save the remaining humanoid.
<div style="text-align: center;"> <a data-passage="0085a" class="link-internal link-image"><img src="IMG\control2.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG\1\0085a.png" />
The creature hurls the humanoid aside and turns its gaze toward you. Its aggressive nature leaves no doubt - <n1>it’s preparing to strike.</n1> With its massive frame and dense musculature, it could easily kill you… if it reaches you. You must stop it. <n3>Seize control of its mind before it closes the distance.</n3>
<<set $regenValue = 20>> <<set $regenIntervalID = 0>> <<set $regenGameOver = false>> <style>
#regenSliderDisplay {
width: 100%;
height: 25px;
background-color: #1d152d;
border: 1px solid #22133a;
border-radius: 5px;
margin-bottom: 10px;
position: relative;
overflow: hidden;
}
#regenSliderFill {
position: absolute;
top: 0;
left: 0;
height: 100%;
background-color: #0e0818;
width: 0%;
border-radius: 5px 0 0 5px;
transition: width 0.1s;
}
</style><div id="regenSliderDisplay">
<div id="regenSliderFill"></div>
</div><img src="IMG\1\spacek.png" />
<<script>>
(function() {
function updateDisplay() {
const fillElem = document.getElementById("regenSliderFill");
if (!fillElem) return;
const val = State.getVar("$regenValue");
const fill = Math.max(0, Math.min(100, (val / 50) * 100));
fillElem.style.width = fill + "%";
}
function endGame(targetPassage) {
State.setVar("$regenGameOver", true);
clearInterval(State.getVar("$regenIntervalID"));
State.setVar("$regenIntervalID", 0);
Engine.play(targetPassage);
}
function startTicking() {
const id = setInterval(() => {
if (State.getVar("$regenGameOver")) {
clearInterval(id);
State.setVar("$regenIntervalID", 0);
return;
}
let val = State.getVar("$regenValue") - 4;
val = Math.max(0, val);
State.setVar("$regenValue", val);
updateDisplay();
if (val <= 0) {
endGame("regenl");
}
}, 500);
State.setVar("$regenIntervalID", id);
}
function onSpacePress(e) {
if (e.code !== "Space" || State.getVar("$regenGameOver")) return;
let val = State.getVar("$regenValue") + 2;
if (val >= 50) {
val = 50;
State.setVar("$regenValue", val);
updateDisplay();
endGame("regenw");
return;
}
State.setVar("$regenValue", val);
updateDisplay();
}
if (!window._regenListenerAdded) {
document.addEventListener("keydown", onSpacePress);
window._regenListenerAdded = true;
}
setTimeout(() => {
updateDisplay();
startTicking();
}, 10);
})();
<</script>><<if setup.batleSound is undefined>><<run setup.batleSound = new Audio("music/batle.mp3")>><<run setup.batleSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.batleSound.play().catch(()=>{})>><img src="IMG\1\0085b.png" />
An unexpected turn. Just as you managed to break through its will and seize control, the creature’s mind and with it, its entire head - <n2>violently exploded</n2>. It seems it wasn’t built to handle mental override. A shame. You could’ve made good use of such a strong, aggressive entity. Still… if not the beast, at least you’ve [[secured a humanoid|Bridge]]
<<set $human13 to false>>
<<set $human += 1>>
<<if setup.regenwSound is undefined>>
<<run setup.regenwSound = new Audio("music/regenw.mp3")>>
<<run setup.regenwSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.regenwSound.play().catch(()=>{})>><img src="IMG\1\0088.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0088 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+32 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Not identifiable</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Known as <i>Verdaneth</i>, this world is covered by towering, luminous trees that pierce the sky and reach into space. A deep psychic presence suggests the planet itself may be alive.</span></div>
<<if $yakoqu is true>><div style="text-align: center;"> <a data-passage="0088a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0088">>
<<set $b088 to true>><img src="IMG\1\0085c.png" />
A single strike was enough to break through your armor and injure you. This one humanoid isn't worth the risk. You leave them behind. You retreat, tending to your [[wound afterward|Bridge]]
<<set $human13 to false>>
<<if setup.regenlSound is undefined>>
<<run setup.regenlSound = new Audio("music/regenl.mp3")>>
<<run setup.regenlSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.regenlSound.play().catch(()=>{})>>
<<if setup.batleSound && !setup.batleSound.paused>>
<<run setup.batleSound.pause()>>
<<run setup.batleSound.currentTime = 0>>
<</if>><img src="IMG\1\0086.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0086 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−268 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A dense meteoroid cluster drifting through deep space. The inner zone is filled with fast debris that can tear through any unshielded ship.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0086">><img src="IMG\1\0087.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0087 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+14 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Mutated humanoid life forms only</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The planet is overrun by twisted mutations. Whatever caused it erased the original inhabitants, leaving only warped remains of life.</span></div>
<div style="text-align: center;"> <a data-passage="0087a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0087">><img src="IMG\1\0087a.png" />
Mutated humanoid lifeform. The genetic alterations have radically reshaped its circulatory system, neural pathways, and physical appearance. The result: a stronger, more primal, more brutal entity. But one question remains - <n3>did any trace of humanoid empathy survive?</n3> Or has this transformation become another vessel for the corruption spreading across the universe? The truth can be uncovered… <n3>but the price is a single humanoid life.</n3>
<div style="text-align: center;"> <<if $human >= 1>> [[Send a humanoid to the planet's surface|0087b]] <<else>> <n2>Get a humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.radioSound is undefined>>
<<run setup.radioSound = new Audio("music/radio.mp3")>>
<<run setup.radioSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.radioSound.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\nemesis.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #984f2e; padding: 10px; color: #984f2e; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left;">
<b>EXPERIMENT ID:</b><span style="color:#d67c0a;"> 0087 </span>
<b>TEST SUBJECTS:</b> Mutated humanoid / Standard humanoid
<b>INTERACTION TYPE:</b> Direct proximity behavioral observation
<b>OBSERVATION:</b> Mutation induces heightened aggression but does not initially exhibit lethal intent.
<b>RESULT:</b> <span style="color:#c0392b;">Corruption and decay confirmed.</span> Subject retrieval deemed unfeasible. Standard humanoid abandoned. </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human -= 1>>
<img src="IMG\1\yako88.png" />
You’ve landed on the planet and, as the Warden suggested, continued the search from the ground – and finally, it paid off. There it is. After all this searching, you've found it. <n1>Yako is here.</n1> Now, you just need to catch it. Among all the creatures you've encountered, this is the smallest and seemingly the most harmless. But you suspect its size is deceptive – swift, agile, and capable of slipping through your grasp with ease. <n1>As a spiritual entity, mind control is not an option.</n1> That leaves only your own creatures. Are they fast enough? Strong enough? Now, you must choose one of them…
🔹<<if $werewolf is true>>[[Send the werewolves to catch it]]<<else>><n2>Required creature missing:<br><n2>Werewolf</n2></n2><</if>>
🔹<<if $horsehuman is true>>[[Send the horse-man to catch it]]<<else>><n2>Required creature missing:<br><n2>Horse-Human – Can be created in the Bio-Lab</n2></n2> <</if>>
<div style="text-align: center;">These two creatures are suitable based on their physique and speed.</div>
<<if $yakoq4 is true>><div style="text-align: center;">[[Ask the shaman for help in capturing the Yako|shamanyako]]</div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $yakoStage to 4>>
<img src="IMG\1\yako88w.png" />
Yako doesn’t even try to flee. It sits calmly, waiting for its hunter to approach. Then, at the very last moment, <n1>it leaps toward your creature.</n1>A flash - your creature collapses, lifeless, <n1>as Yako assumes its form.</n1>
<<if $horsehuman is true>> [[Send your other creature after it|Send the horse-man to catch it]]<</if>>
[[Give up and return to the Warden|Bridge]]
<<set $yakow to true>>
<<set $yakoq2 to true>>
<<if setup.wolfSound is undefined>><<run setup.wolfSound = new Audio("music/wolf.mp3")>><<run setup.wolfSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.wolfSound.play().catch(()=>{})>><img src="IMG\1\yako88h.png" />
Yako doesn’t even try to flee. It sits calmly, waiting for its hunter to approach. Then, at the very last moment, <n1>it leaps toward your creature.</n1>A flash - your creature collapses, lifeless, <n1>as Yako assumes its form.</n1>
<<if $horsehuman is true>> [[Send your other creature after it|Send the werewolves to catch it]]<</if>>
[[Give up and return to the Warden|Bridge]]
<<set $yakoh to true>>
<<set $yakoq2 to true>>
<<if setup.horse is undefined>><<run setup.horse = new Audio("music/horse.mp3")>><<run setup.horse.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.horse.play().catch(()=>{})>><img src="IMG\1\bartender.png" />
The bartender is preparing your drink. Now he’s paying attention – it’s the perfect moment to ask: <n1>Is there a Shaman nearby?</n1> He looks at you and smiles. <n1>Yes, there is. In the VIP section.</n1> That’s where she spends most of her time, <n1>"drawing strength"</n1>. No point in waiting. You finish your drink and head toward the VIP area.
<img src="IMG\1\vip.png" />
However, a massive crowd greets you. They're lined up to get in, with security guards blocking their way. Could it be because of the shaman? Maybe he's performing some task inside - healing, or telling fortunes? You don’t know. But one thing is certain: you don’t have time to wait in line. You move forward, <n1>slip into the guard’s mind</n1>, and use mind control to make him let you in. You head straight toward the room and open the door without warning, intending to <n1>surprise the shaman</n1>, take control over her and convince [[her to come with you.]]@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\saman2.mp4" type="video/mp4">
</video>
@@
However, as the door opens, <n1>you’re the one who’s surprised</n1>. The bartender did say the shaman was here to regain strength, but this is not what you imagined. The shaman stands motionless, <n1>her glowing aura and sparkling eyes radiate power</n1>, as if her entire body is coursing with immense energy. Perhaps she is absorbing the other being’s energy through this" ritual"? It would make sense - after all, <n1>by exploiting the corruption within creatures and the universe itself</n1>, she can claim what she desires without effort. The shaman remains deep in her trance, <n1>but the other creature awakens</n1>. It recognizes your kind and shouts, <n1>“Mind Eater!”</n1> before fleeing the room, leaving you alone with [[the shaman.]]<img src="IMG\1\shaman.png" />
The shaman awakens from her trance, neither startled nor afraid of your presence. She immediately senses the energy radiating from you and is already preparing to use her cunning tricks to drain it. However, you're not so easily deceived. You refuse her attempt and prepare for a mental duel to take control - <n3>but then you change your mind.</n3> Instead, you try something different: you attempt to persuade her to join your mission while allowing <n3>her to keep her free will.</n3>
<img src="IMG\1\shaman2.png" />
You explained the details - why you needed the Yako, and how many creatures you had already sent after it. The shaman was pleased by the opportunity and the promise of absorbing the vast energy a Yako possesses. However, she was less thrilled to hear how much power you had already bestowed upon it. Every form the Yako has taken must now be defeated one by one before it can return to its original shape and become capturable. Despite this, the shaman accepted your offer and [[agreed to join you.|0033]]
<<set $yakoStage to 6>>
<<set $yakoq3 to false>>
<<set $yakoq4 to true>><img src="IMG\1\shaman3.png" />
The shaman goes after the Yako, forcing it into a state of fear - enough to make it take on the forms of the creatures it has previously killed. <n1>This is where the shaman's true challenge begins, for in each of these forms, the Yako must be defeated.</n1> More precisely, the shaman must drain its energy while it's in these forms, weakening it enough for you to capture it.
<<if $yakow is true>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\yakow.mp4" type="video/mp4">
</video>
@@
The Yako takes on the form of the werewolf. To overcome this shape, the shaman will need great endurance, as <n1>the Yako now possesses the stamina and resilience of a true werewolf.</n1> This part of the duel is long and exhausting, but the shaman seems up to the task. She withstands the ordeal and successfully drains the Yako’s energy. <</if>>
<<if $yakoh is true>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\yakoh.mp4" type="video/mp4">
</video>
@@
The Yako assumes the form of the horsehuman. To defeat this shape, the shaman must unleash her power and enhance her body’s adaptability. The Yako now possesses all <n1>the physical strength, attributes, and towering size of this hybrid creature,</n1> putting the shaman through immense physical trials. Yet, she manages to endure and overcome the challenge, ultimately draining the Yako’s energy even in this formidable form. <</if>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\yakol.mp4" type="video/mp4">
</video>
@@
At last, the Yako takes on its final form. There is no escape now.<n1>The shaman "binds" it to herself and begins the final round.</n1> This phase holds no real challenge for her anymore. Her aura shines brilliantly, brimming with absorbed energy. <n1>Spiritually, she now far surpasses the Yako</n1> - though her physical body shows signs of exhaustion. Despite this, she prevails, and the weakened Yako is left for you to capture. And you do. The gravitational beam lifts it effortlessly. Another creature [[checked off your list.]]
<<set $yakoStage to 7>>
<<set $yako to true>>
<<set $yakobreed to true>>
<img src="IMG\1\shaman4.png" />
The shaman has done what you asked. You both benefited from the deal. She could be a valuable humanoid companion, but she wants to return to her planet, and unfortunately, there's nothing you can do to stop her right now. <n1>Engaging in a fight with her is not an option</n1>, as her glowing aura clearly shows that her body is filled with the energy absorbed from the Yako - along with all the other creatures' essence. Such a confrontation would <n1>put your mission at risk</n1>. So you have no other choice but to <n1>take her home</n1>.
<div style="text-align: center;">[[Back|Ship]]</div>
<<if setup.funSound is undefined>>
<<run setup.funSound = new Audio("music/fun.mp3")>>
<<run setup.funSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.funSound.play().catch(()=>{})>>
<<if $pics8 is true>><div class="hover-image-wrapper"><img src="IMG/1/0089.png" class="main-image" alt="comics"><a data-passage="0089a" class="hover-link link-internal link-image"><img src="IMG/1/0089a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\00890.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#aa00ff;"> 0089 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−273 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None detectable</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A vast black hole devouring all light and matter around it. <n1>Extreme gravitational distortion</n1> detected near the event horizon - nothing stable can exist within range.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0089">><img src="IMG\sound.png" /><div style="text-align: center;">This game contains <n1>sound effects</n1> and <n1>background music</n1> that play an important role in the atmosphere and the experience of the events. You can adjust the <n1>background music volume</n1> using the slider on the left side of the screen. However, the volume of <n1>videos and sound effects</n1> <n1>cannot be changed</n1>. If you prefer a completely <n1>silent experience</n1>, the easiest method is to <n1>right-click the browser tab</n1> where the game is running (at the top of your browser), and select <n1>“Mute site”</n1> or <n1>“Mute tab”</n1> from the menu.
<img src="IMG\dead.png" />The characters in this game -<n1> whether human, animal, or alien</n1> - may at times be injured or killed, <n1>sometimes in graphic or brutal ways.</n1> If such content may upset or disturb you, <n1>please consider not continuing down this path.</n1> However, if you choose to proceed despite all warnings…
[[Then let us begin|prolog]]
[[If you are not a new player, you can skip the prologue]]
</div>
If you're only interested in the new content, click here → [[Go to the new content]]
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\1\sadako1.png" />
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>MISSION: CAPTURE – CLASSIFIED</b><br>
<span style="color:#e53935;">TARGET: Sadako</span><br>
<b>ZONE:</b> <span style="color: #e6b800;">Sector 0110–0130</span><br>
<b>TRAITS:</b> A cursed entity, capable of manifesting through electronic devices.<br>
<b>NOTES:</b> Summoning requires a cursed artifact, safeguarded within the 0113 Arcanum Vault.
</div>
<div style="text-align: center;"><<switch $smStage>>
<<case 1>>Retrieve the cursed artifact from the <n1>0113 Arcanum Vault</n1><<case 2>><n3>Play the cursed recording.</n3><<case 3>>Find a suitably advanced planet.<<case 4>><n2>Obtain explosives.</n2> - A war-hardened species could be of help to you.<<case 5>><n2>Trigger a solar flare - 0122</n2><<case 6>>Set a trap for <n1>Sadako</n1><<case 7>><img src="IMG\1\captured.png" />
<</switch>></div>
<div style="text-align: center;">[[Back|Quests]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\1\0090.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0090 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+10 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">An abandoned humanoid mothership drifting in space. Several Yautja vessels now circle it, purpose unknown.</span></div>
<<if $egg1 is true>><div style="text-align: center;">[[Transmitting docking request|Yautja]]</div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0090">>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\breed7.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PROCESS: HYBRIDIZATION ATTEMPT</b><br>
<b>DNA SEQUENCES:</b> HUMANOID + YAKO ENTITY<br>
<span style="color:#d64141;">STATUS: FAILURE</span><br>
<b>REASON:</b> Yako is either unwilling or incapable of producing further offspring, even under laboratory conditions.<br></span>
</div>
<div style="text-align: center;">[[Back|humsub]]</div>
<<if $yakobreed is true>> <<goto "foxhum">> <</if>><img src="IMG\1\0090a.png" />
The ship's deck is littered with the bodies of unknown creatures. Signs of slaughter are everywhere - swift, precise, and merciless kills. It's no surprise: these beings faced the <n3>Yautja</n3>. The <n3>hunters' race</n3> shows no mercy to its enemies. But you do not fear them. Your species and the <n3>Yautja</n3> have long known each other - <n3>allies</n3>, bound by mutual respect. That’s why you gave in to your curiosity and came here, to see with your own eyes what happened aboard this abandoned ship.
<img src="IMG\1\0090b.png" />
You exchanged greetings, then discussed your purpose for venturing into this distant part of the universe. Soon, you learned the truth - the unknown creatures were part of the <n3>Xenomorph</n3> parasite species that dwell near humanoid populations. The <n3>Yautja</n3> hunt them to prevent their spread. During your walk through the ship, you made another discovery: the egg in your possession is of <n3>Xenomorph</n3> origin. It was not dead - merely in stasis. According to the Yautja, if you wish to hatch it, all you need to do is place a <n3>humanoid</n3> near it. However, he does not recommend it. Once it hatches, the "Larva Host" will seek a body - and should it infect one of your people, it will cost them their life.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $egg2 to true>>
<<set $egg1 to true>>
<<if setup.predator is undefined>>
<<run setup.predator = new Audio("music/predator.mp3")>>
<<run setup.predator.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.predator.play().catch(()=>{})>> <img src="IMG\1\alegg.png" />
<div style="border: 2px solid #9b111e; padding: 12px; color: #9b111e; font-family: monospace; font-size: 15px; line-height: 1.0; background-color: #0d0d0d; text-align: left;"> <b>⚠ STATUS UPDATE – CONTAINMENT CELL 02</b><br><br> <n3>Proximity alert:</n3> Humanoid lifeform detected within 2.5 meters.<br> <n3>Reaction triggered:</n3> Hatching protocol initiated. Bio-shell pulse irregularities noted.<br> <n3>Vital signs:</n3> Internal organism shows increased neural and cardiac activity.<br> <n3>Heartbeat pattern:</n3> Confirmed – fetal rhythm escalating (≈ 112 bpm)<br><br></div><<if typeof $hatchStartTime === "undefined">><<set $hatchStartTime to Date.now()>><</if>>
<div id="hatchTimerContainer" style="text-align: center; font-family: monospace; color: #e67e22; font-size: 20px;">⏳ Hatching in: <span id="hatchCountdown">…</span> seconds</div>
<div id="hatchLink" style="display: none; text-align: center; margin-top: 20px;">
[[Hatching has begun]]
</div>
<div style="text-align: center;">[[Back|Cell]]</div>
<script>
(function() {
const hatchTotal = 60;
const hatchStart = SugarCube.State.getVar('$hatchStartTime');
const now = Date.now();
const elapsed = Math.floor((now - hatchStart) / 1000);
const remaining = Math.max(0, hatchTotal - elapsed);
const countdownElem = document.getElementById("hatchCountdown");
const container = document.getElementById("hatchTimerContainer");
const link = document.getElementById("hatchLink");
if (remaining > 0) {
if (countdownElem) countdownElem.textContent = remaining;
let counter = remaining;
const interval = setInterval(() => {
counter--;
if (countdownElem) countdownElem.textContent = counter;
if (counter <= 0) {
clearInterval(interval);
if (container && link) {
container.innerHTML = "🧬 Incubation complete.";
link.style.display = "block";
}
}
}, 1000);
} else {
if (container && link) {
container.innerHTML = "🧬 Incubation complete.";
link.style.display = "block";
}
}
})();
</script>
<<set $egg2 to false>>
<<set $egg3 to true>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\facehug.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #9b111e; padding: 10px; color: #9b111e; font-family: monospace; font-size: 15px; line-height: 1.3; background-color: #0d0d0d; text-align: left;"><b>⚠ STATUS UPDATE – CONTAINMENT CELL 03</b><br><br><n3>Incident:</n3> The creature hatched and immediately lunged toward the humanoid.<br><n3>Method:</n3> It was connected through the vagina, directly connected to the host's womb.<br><n3>Result:</n3> An embryo that can already be considered developed is thus placed in the humanoid's womb.</div><<if typeof $embryoStartTime === "undefined">><<set $embryoStartTime to Date.now()>><</if>><div id="embryoTimerContainer" style="text-align: center; font-family: monospace; color: #f39c12; font-size: 18px;">🧬 Estimated time remaining based on current activity: <span id="embryoCountdown">…</span> seconds
</div><div id="embryoLink" style="display: none; text-align: center; margin-top: 20px;">
[[Embryo development is underway]]
</div>
<div style="text-align: center;">[[Back|Cell]]</div>
<script>
(function () {
const total = 60;
const start = SugarCube.State.getVar('$embryoStartTime');
const now = Date.now();
const elapsed = Math.floor((now - start) / 1000);
const remaining = Math.max(0, total - elapsed);
const countdownElem = document.getElementById("embryoCountdown");
const container = document.getElementById("embryoTimerContainer");
const link = document.getElementById("embryoLink");
if (remaining > 0) {
if (countdownElem) countdownElem.textContent = remaining;
let counter = remaining;
const interval = setInterval(() => {
counter--;
if (countdownElem) countdownElem.textContent = counter;
if (counter <= 0) {
clearInterval(interval);
if (container && link) {
container.innerHTML = "🧬 Activity threshold exceeded.";
link.style.display = "block";
}
}
}, 1000);
} else {
if (container && link) {
container.innerHTML = "🧬 Activity threshold exceeded.";
link.style.display = "block";
}
}
})();
</script>
<<set $egg3 to false>>
<<set $egg4 to true>><img src="IMG\1\xeno.png" />
<div style="border: 2px solid #9b111e; padding: 12px; color: #9b111e; font-family: monospace; font-size: 15px; line-height: 1.0; background-color: #0d0d0d; text-align: left;">
<b>⚠ STATUS UPDATE – CONTAINMENT CELL 04</b><br><br>
<n3>Extraction complete:</n3> The stable embryo has been successfully removed and placed in the cell acceleration chamber.<br>
<n3>Next step:</n3> The fully developed specimen will soon be transferred to the bio-lab for advanced study.
</div>
<div style="text-align: center;">[[Back|Cell]]</div>
<<set $egg1 to false>>
<<set $egg4 to false>>
<<set $egg5 to true>>
<<set $xeno to true>>
<<set $xenom to 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\breed8.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #9b111e; padding: 12px; color: #9b111e; font-family: monospace; font-size: 15px; line-height: 1.0; background-color: #0d0d0d; text-align: left;">
<b>⚠ STATUS LOG – DNA SYNTHESIS REPORT</b><br><br>
<n3>Subjects:</n3> Humanoid and Xenomorph <br>
<n3>Process:</n3> DNA synthesis initiated under controlled parameters.<br>
<n3>Outcome:</n3> Synthesis successful, but Xenomorph DNA fully overwrote humanoid structure.<br>
<n3>Result:</n3> No hybrid form generated. Resulting organism classified as standard Xenomorph strain.
</div>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\breed8a.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #9b111e; padding: 12px; color: #9b111e; font-family: monospace; font-size: 15px; line-height: 1.0; background-color: #0d0d0d; text-align: left;">
<b>⚠ STATUS LOG – DNA SYNTHESIS COMPLETE</b><br><br>
<n3>Process:</n3> Combined DNA synthesis completed under secure lab conditions.<br>
<n3>Result:</n3> A Xenomorph egg has formed as the final product of the synthesis.<br>
<n3>Action:</n3> The specimen has been scheduled for immediate transfer to the <span style="color:#f39c12;">Cell Vault</span> for containment.
</div>
<div style="text-align: center;">[[Back|humsub]]</div>
<<set $egg1 to true>>
<<set $egg2 to true>><img src="IMG\1\xenom2.png" />
<div style="border: 2px solid #9b111e; padding: 12px; color: #9b111e; font-family: monospace; font-size: 15px; line-height: 1.5; background-color: #0d0d0d; text-align: left;">
<b>⚠ STATUS LOG – AUTOMATED INCUBATION SEQUENCE</b><br><br>
<n3>Protocol:</n3> The system automatically initiated and completed the egg hatching process.<br>
<n3>Extraction:</n3> The embryo was removed using sterile robotic arms.<br>
<n3>Transfer:</n3> Subject was safely placed into the <span style="color:#f39c12;">cell acceleration chamber</span>.<br>
<n3>Result:</n3> The developed specimen has been transferred to the bio-lab.
</div>
<div style="text-align: center;">[[Back|Cell]]</div>
<<set $human -= 1>>
<<set $xenom += 1>>
<<set $egg1 to false>>
<<set $egg2 to false>><img src="IMG\1\vexart.png" />
<n1>Vex – Humanoid-Canine Hybrid.</n1> Vex is a unique hybrid species created through experimental procedures, combining genetic traits of both humanoids and canines. Most of its body is humanoid in shape, but it has pointed, expressive ears similar to those of a dog. The face is slightly elongated around the nose. Vex has a short and stocky build, with smooth, hairless skin in a grayish tone, accented by subtle bluish-purple hues. Vex is an intelligent being, capable of complex thought, learning, and communication.
<div style="text-align: center;">[[Back|humsub]]</div>
<<set $vex to true>><img src="IMG\hib.png" />
<div style="text-align: center;">Experimental zone for <n1>cross-species hybrids</n1> – designated for genetic observation and analysis of suitable subjects.</div>
<div style="text-align: center; font-size: 28px; color: #25737d; font-weight: bold;"> Available Experiments </div>
<<if $male >= 1 and $vex>>[[Humanoid × Vex - Test 1.0]]<</if>>
<<if $male >= 1 and $vex>>[[Humanoid × Vex - Test 2.0]]<</if>>
<<if $male >= 1 and $vex>>[[Humanoid × Vex - Test 3.0]]<</if>>
<<if $muffet>><div style="text-align: center; font-size: 28px; color: #25737d; font-weight: bold;"> Available Experiments </div>
<<if $male >= 1>>[[Humanoid × Muffet - Test 1.0]]<br><</if>><<if $male >= 1>>[[Humanoid × Muffet - Test 2.0]]<br><</if>><<if $male >= 1>>[[Humanoid × Muffet - Test 3.0]]<br><</if>><<if $male >= 1>>[[Humanoid × Muffet - Test 4.0]]<br><</if>><<if $male >= 8>>[[Humanoid × Muffet - Test 5.0]]<<else>><n2>⚠ Missing Subject: 8 male humanoid</n2><</if>><</if>>
<div style="text-align: center;">[[Back|Lab]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\vex1.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.2; background-color: #000000; text-align: left;"> <b><n3>⚠ LOG ENTRY – Humanoid × Vex - Test 1.0</n3></b><br><br>
Humanoid reacted with visible distress upon visual contact with the unknown lifeform. Mind control applied to suppress fear and induce stillness. Subject is now calm and immobile.<br><br> Vex showed no sign of aggression or hesitation. In fact, the sight of the humanoid seemed to trigger interest.
No neural override required - <n3>Vex proceeds purely on instinct.</n3>
</div>
<div style="text-align: center;">[[Experimental data recorded|hibrid]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\vex2.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #5a5f7a; padding: 12px; color: #d4d6ec; font-family: monospace; font-size: 15px; line-height: 1.0; background-color: #000000; text-align: left;">
<b>⚠ INTERACTION LOG – Humanoid × Vex – Test 2.0</b><br><br>
Mind control applied to the humanoid was successful - subject approached with confidence and assumed a dominant role during initial contact.<br><br>
The Vex displayed no signs of resistance. Passive stance maintained throughout the interaction.<br><br>
DNA synthesis attempt: <span style="color:#f1c40f;">FAILED</span>. The Vex’s hybrid DNA is no longer viable for creating new life forms.
</div>
<div style="text-align: center;">[[Experimental data recorded|hibrid]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\vex3.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #5a5f7a; padding: 12px; color: #d4d6ec; font-family: monospace; font-size: 15px; line-height: 1.0; background-color: #000000; text-align: left;">
<b>⚠ TEST LOG – Humanoid × Vex – Try 3.0</b><br><br>
No mind control this time. Both sides were free to act.<br><br>
The Vex made the first move. It used calm behavior and smart talking to change the humanoid’s mind. In the end, the Vex got exactly what it wanted.<br><br>
DNA test: <span style="color:#f1c40f;">FAILED</span>. The Vex’s DNA is mixed and can’t be used to create new life anymore.
</div>
<div style="text-align: center;">[[Experimental data recorded|hibrid]]</div><img src="IMG\1\0091.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0098 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+13 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Present – humanoid settlements across valleys and highlands</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A lush, mountainous world covered in forests and cliffs. Humanoid settlements thrive among the valleys and high peaks.</span></div>
<<if $human14 is true>> <div style="text-align: center;"> <a data-passage="14human" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0091">><img src="IMG\1\0091a.png" />
As your ship approaches the planet, a sudden alert blares – then a jolt. A projectile hits your ship, though it only impacts the protective shield. It seems their radar systems are advanced enough to detect you, but their weaponry is too weak to cause damage. Still, this is reason enough to take a closer look at these humanoids. You fly in closer while taking more hits. <n1>You even intercept a distress signal. It’s likely the planet’s military now knows you’re here.</n1> That makes your presence a bit more risky - they might have stronger weapons. <n1>Still, you’re not planning to leave empty-handed.</n1>
<img src="IMG\1\0091b.png" />
You spot the <n1>lone defense tower</n1> - the one that fired the first shot. Your sensors detect a humanoid presence there - a perfect target. You fly in closer and drop your cloak. The sight of your ship has an immediate effect: the humanoid panics, abandons the tower, and runs toward a nearby vehicle, trying to escape. But the vehicle is too heavy to lift outright. You’ll have to catch the target before they reach it or drag them out if they make it inside. For that, you’ll need to deploy <n1>one of your creatures</n1> - something fast, ruthless, and able to strike in an instant.
<div style="text-align: center;"><<if $werewolf is true>> [[Send the Werewolves to the planet's surface|14humana]]
<<else>>Required creature missing: <n2>⚠ Werewolf</n2>
<</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.shotSound is undefined>>
<<run setup.shotSound = new Audio("music/shot.mp3")>>
<<run setup.shotSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.shotSound.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\14human.mp4" type="video/mp4">
</video>
@@
A werewolf drops from the sky without warning, landing in front of the fleeing humanoid and <n1>catching her</n1> before she can reach the vehicle. After obeying your command, the creature immediately begins to <n1>play with its prey</n1> - tearing, growling, testing the limits of her resistance. Normally, you’d allow it. <n1>It earned the reward.</n1> But not now. You can't afford the delay. You call the werewolf back. It obeys, retreating into the shadows. Then, without hesitation, you lock onto the defeated humanoid and pull her in with a <n1>gravitational beam</n1>.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human14 to false>>
<<set $human += 1>>
<<set $humanoid to true>><img src="IMG\1\0092.png" />
<div style="border: 2px solid #d9d9d9; padding: 10px; color: #d9d9d9; font-family: monospace; font-size: 20px; line-height: 1.0; text-align: left;">
<b>OBJECT ID:</b><span style="color:#d64141;"> 0092 </span><br>
<div style="text-align: center;"><b style="color:#9d0000;">WARNING:</b> Immediate evacuation advised.<br><br></div>
</div><<set $value92 = 20>><<set $intervalID92 = 0>><<set $gameOver92 = false>><style>
#sliderDisplay {
width: 100%;
height: 25px;
background-color: #1d152d;
border: 1px solid #22133a;
border-radius: 5px;
margin-bottom: 10px;
position: relative;
overflow: hidden;
}
#sliderFill {
position: absolute;
top: 0;
left: 0;
height: 100%;
background-color: #0e0818;
width: 0%;
border-radius: 5px 0 0 5px;
transition: width 0.1s;
}
</style>
<div id="sliderDisplay">
<div id="sliderFill"></div>
</div>
<img src="IMG\1\spacek.png" /><<set $lastvisit to "0092">>
<<script>>
(function() {
function updateDisplay() {
const fillElem = document.getElementById("sliderFill");
if (!fillElem) return;
const val = State.getVar("$value92");
const fill = Math.max(0, Math.min(100, (val / 50) * 100));
fillElem.style.width = fill + "%";
}
function endGame(targetPassage) {
State.setVar("$gameOver92", true);
clearInterval(State.getVar("$intervalID92"));
State.setVar("$intervalID92", 0);
Engine.play(targetPassage);
}
function startTicking() {
const id = setInterval(() => {
if (State.getVar("$gameOver92")) {
clearInterval(id);
State.setVar("$intervalID92", 0);
return;
}
let val = State.getVar("$value92") - 4;
val = Math.max(0, val);
State.setVar("$value92", val);
updateDisplay();
if (val <= 0) {
endGame("fail92");
}
}, 500);
State.setVar("$intervalID92", id);
}
function onSpacePress(e) {
if (e.code !== "Space" || State.getVar("$gameOver92")) return;
let val = State.getVar("$value92") + 2;
if (val >= 50) {
val = 50;
State.setVar("$value92", val);
updateDisplay();
endGame("Ship");
return;
}
State.setVar("$value92", val);
updateDisplay();
}
if (!window._voidMiniGameListenerAdded) {
document.addEventListener("keydown", onSpacePress);
window._voidMiniGameListenerAdded = true;
}
setTimeout(() => {
updateDisplay();
startTicking();
}, 10);
})();
<</script>><<if setup.fieldSound is undefined>><<run setup.fieldSound = new Audio("music/field.mp3")>><<run setup.fieldSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>><<run setup.fieldSound.play().catch(()=>{})>> <img src="IMG\1\0092a.png" />
<div style="text-align: center;">It seems the engines couldn't handle the strain, and the magnetic force pulled your ship in.
Your mission – and you along with it – has <n2>failed</n2>.
[[Try again…|0092]]</div><img src="IMG\1\0093.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0093 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+84 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Gaseous lifeforms with questionable manners</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A massive gas giant that constantly releases audible pressure waves - essentially cosmic farts. The locals treat gas emissions as serious business. <b>Warning:</b> Do not light a match.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0093">>
<<if setup.fartSound is undefined>>
<<run setup.fartSound = new Audio("music/fart.mp3")>>
<<run setup.fartSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.fartSound.play().catch(()=>{})>><img src="IMG\1\0094.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0094 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+4 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Present – humanoid forms detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A thick violet fog covers the surface, bending light and sound. Strange distortions spread slowly across the land - their source remains unknown.</span></div>
<<if $male6 is true>><div style="text-align: center;"> <a data-passage="0094a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0094">>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\0094a.mp4" type="video/mp4">
</video>
@@
You encounter a lifeform that stirs a familiar sense of unease - yet it remains entirely unclassified. Not even the <n1>Xal’Rynor</n1> archives list anything resembling it. The creature moves with unsettling speed, effortlessly seizing a nearby humanoid male. You cannot let this go unanswered. The humanoid is too valuable… and the creature itself even more so. <n1>You must breach its mind, freeze it from within, and capture it - it must be studied.</n1>
<style>
#slotContainer {
display: flex;
justify-content: center;
gap: 40px;
margin-bottom: 20px;
}
.slotColumn {
width: 60px;
height: 60px;
font-size: 36px;
background-color: #222;
color: #fff;
font-family: monospace;
display: flex;
justify-content: center;
align-items: center;
border: 2px solid #555;
border-radius: 8px;
}
#slotMessage {
text-align: center;
font-weight: bold;
font-size: 18px;
color: white;
}
</style>
<div id="slotContainer">
<div class="slotColumn" id="col1">?</div>
<div class="slotColumn" id="col2">?</div>
<div class="slotColumn" id="col3">?</div>
</div>
<div id="slotMessage">Press SPACE to stop the columns</div>
<<script>>
(function () {
const allSymbols = ["A", "B", "C", "D", "E", "F", "G", "H", "S", "C", "P"];
const winningSymbols = ["S", "C", "P"];
let columns = [[], [], []];
let intervals = [];
let stopped = [false, false, false];
let stopCount = 0;
let stopIndex = 0;
function shuffle(arr) {
let a = arr.slice();
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
function prepareColumns() {
for (let i = 0; i < 3; i++) {
let set = shuffle(allSymbols);
set = set.filter(c => !winningSymbols.includes(c));
set.splice(5, 0, winningSymbols[i]);
columns[i] = set;
}
}
function startSpin() {
for (let i = 0; i < 3; i++) {
let index = 0;
const elCol = document.getElementById("col" + (i + 1));
if (!elCol) continue;
intervals[i] = setInterval(() => {
const elColInner = document.getElementById("col" + (i + 1));
if (!elColInner) return;
const val = columns[i][index];
elColInner.innerText = val;
elColInner.style.color = winningSymbols.includes(val) ? "#a287e6" : "#fff";
index = (index + 1) % columns[i].length;
}, 450);
}
}
function clearAllIntervals() {
for (let i = 0; i < intervals.length; i++) {
clearInterval(intervals[i]);
}
intervals = [];
}
function stopSpin(col) {
clearInterval(intervals[col]);
stopped[col] = true;
stopCount++;
if (stopCount === 3) {
checkWin();
}
}
function checkWin() {
const vals = [1, 2, 3].map(i => {
const el = document.getElementById("col" + i);
return el ? el.innerText : "";
});
const success = vals[0] === "S" && vals[1] === "C" && vals[2] === "P";
const msg = document.getElementById("slotMessage");
if (success) {
msg.innerHTML = "Success! Unlocking passage...";
msg.style.color = "white";
setTimeout(function () {
if (typeof Engine !== "undefined" && typeof Engine.play === "function") {
Engine.play("SCP");
}
}, 1000);
} else {
msg.innerHTML = "Failure. <br>Press <strong>R</strong> to retry.";
msg.style.fontSize = "22px";
msg.style.color = "#ff4c4c";
}
}
function resetGame() {
clearAllIntervals();
columns = [[], [], []];
stopped = [false, false, false];
stopCount = 0;
stopIndex = 0;
const msg = document.getElementById("slotMessage");
if (msg) {
msg.innerText = "Press SPACE to stop the columns";
msg.style.color = "white";
msg.style.fontSize = "18px";
}
prepareColumns();
startSpin();
}
function keyHandler(e) {
if (e.code === "Space") {
if (stopIndex < 3) {
stopSpin(stopIndex);
stopIndex++;
}
} else if (e.code === "KeyR") {
resetGame();
}
}
window.addEventListener("keydown", keyHandler);
// Biztonságos automatikus indulás
setTimeout(() => {
prepareColumns();
startSpin();
}, 0);
})();
<</script>>
<div style="text-align: center;">[[Back|Bridge]]</div><<if setup.mg1Sound is undefined>><<run setup.mg1Sound = new Audio("music/mg1.mp3")>><<run setup.mg1Sound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.mg1Sound.play().catch(()=>{})>>
<img src="IMG\1\0094b.png" />
<n1>You had it. You almost had it.</n1> As your will pierced the invisible wall shielding the creature’s mind, everything seemed perfect – for a moment, the connection was nearly complete. You were just about to enter when the being suddenly looked directly at you. Time froze for a single second, <n1>then it simply vanished into thin air.</n1> Gone without a trace, as if it had never existed. Only the humanoid remained – unconscious, but alive. You didn’t manage to capture the entity… but <n1>at least you secured a humanoid.</n1> Deep inside, you know this won’t be your [[last encounter|Bridge]].
<<set $male += 1>> <<set $male6 to false>><img src="IMG\1\0095.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0095 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+11 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Minimal – mostly small lifeforms</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A bizarre dairy-like world made of endless cheese formations - from soft brie valleys to hard parmesan cliffs. Strange chewing sounds echo through comms, though no mice have been detected.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0095">>
<<if setup.sajtSound is undefined>>
<<run setup.sajtSound = new Audio("music/sajt.mp3")>>
<<run setup.sajtSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.sajtSound.play().catch(()=>{})>><img src="IMG\1\0096.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0096 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+11 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Minimal – vampiric lifeforms</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The vampires drained their world long ago. Immortal yet starving, they now lie in endless dormancy, waiting for prey—or release.</span></div>
<div style="text-align: center;"> <a data-passage="0096a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0096">><img src="IMG\1\0096a.png" />
The landscape is mostly desolate, its wildlife virtually extinct, dotted with <n2>abandoned villages and cities</n2>. Only a few castles remain where your sensors detect life. But what kind of life is this? <n2>Vampires – essentially dead</n2>. They float somewhere between life and death. They've long grown weary of slaughtering one another, and neither <n2>disease nor hunger can finish them off</n2>. Thus, they are all prisoners of this planet, spending their <n2>eternally cursed existence</n2> here. You fly over the barren lands, then pause for a moment. A thought crosses your mind: maybe you could make someone’s day slightly more interesting. Perhaps <n2>you should drop a humanoid onto the surface</n2>. That would surely lure a few vampires out of hiding.
<div style="text-align: center;"> <<if $male >= 1>> [[Send a humanoid to the planet's surface|0096b]] <<else>> <n2>⚠ Get a (male)humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.batSound is undefined>>
<<run setup.batSound = new Audio("music/bat.mp3")>>
<<run setup.batSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.batSound.play().catch(()=>{})>>You gently lower the humanoid to the surface using the gravitational beam. <n2>No mind control is applied</n2>, yet it makes no difference. The <n2>hungry vampires sense the fresh prey immediately</n2> and descend upon it without hesitation. There is no escape from two vampires. They capture the humanoid - but what happens next is <n2>not what you expected.</n2>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\vampire1.mp4" type="video/mp4">
</video>
@@
They bite him - but don’t kill. <n2>They drink his blood, but only a little</n2>. It becomes clear that something much stronger than hunger drives them. At first, you think it’s corruption… decay… madness. But then you realize you were wrong. <n2>What torments them is the same thing that torments your kind</n2>. They’re not looking for food - they’re seeking entertainment, joy, pleasure… something to cure the boredom. <n2>This is your mission too. This is what you have in common</n2>.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\vampire2.mp4" type="video/mp4">
</video>
@@
Another bite follows, then they continue what they started. But <n2>they don’t just consume his blood</n2>. You leave, leaving the humanoid behind. That was your plan from the beginning - but now, having discovered this shared trait between you and them, <n2>you feel even more justified in offering this small gesture</n2>.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $male -= 1>><img src="IMG\1\0097.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0097 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+4 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Anomaly detected - continuous outflow observed with no identifiable source. Cause remains unknown.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0097">>
<<if setup.cowSound is undefined>>
<<run setup.cowSound = new Audio("music/cow.mp3")>>
<<run setup.cowSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.cowSound.play().catch(()=>{})>><img src="IMG\1\0091.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0091 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+22 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Inhabited by humanoid species</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A temperate world with scattered city clusters and thriving humanoid life. <n3>Planet suitable for humanoid harvesting</n3>.</span></div>
<<if $human15 is true>> <div style="text-align: center;"> <a data-passage="15human" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0098">>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\15human.mp4" type="video/mp4">
</video>
@@
Your scanners detect a humanoid presence hidden among the rocks and trees. She's alone, completely preoccupied with herself - so immersed in the pursuit of "pleasure" that she doesn't even notice your arrival. <n1>An easy target.</n1> In such an unguarded state, a quick mind control followed by a gravity beam would place her firmly in your captivity. But as you watch her behavior, an idea forms. You believe you have just the right creature to help with her... "problem." All it takes is to deploy the proper specimen. <n1>The choice is yours.</n1> Will you capture her immediately - or indulge in a little entertainment first?
<div style="text-align: center;"><<if $horsehuman is true>> [[Send the Horse-Human to the planet's surface|15humana]] <<else>>Required creature missing: <n2>⚠ Horse-Human - Can be created in the Bio-Lab</n2> <</if>></div>
<div style="text-align: center;">[[Capture the humanoid|Grab]]</div>
<<set $human15 to false>>
<<set $human += 1>>
<<set $humanoid to true>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\15humana.mp4" type="video/mp4">
</video>
@@
Suddenly, a creature crashed down from above, kicking up a <n3>massive cloud of dust</n3>, then charged at the humanoid with <n3>thundering hooves</n3>. The target had no chance to escape in such a surprising situation. Your creature prevailed - <n3>and judging by the humanoid’s reaction, she doesn’t seem to mind</n3>. In fact, it looks like you truly did help with her "problem." You allow some time for both of them to <n3>claim their reward</n3>, then lift them both into your ship.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human += 2>><img src="IMG\1\0099.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0099 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+38 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A weightless sphere made of giant <n2>soap bubbles</n2>, floating and merging in constant motion. No solid core or structure detected.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0099">>
<<if setup.bubSound is undefined>>
<<run setup.bubSound = new Audio("music/bub.mp3")>>
<<run setup.bubSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.bubSound.play().catch(()=>{})>><img src="IMG\1\0100.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0100 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+28 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">1</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A dwarf planet wrapped in shifting colors. The surface moves like living <n3>pigments of paint</n3>, swirling across a canvas of air and stone - where reality itself feels hand-painted.</span></div>
<div style="text-align: center;"> <a data-passage="sketch" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0100">><img src="IMG\1\0100a.png" />
He is <n3>The Sketcher</n3> - a Mechronite who expresses his unique artistic talents through the <n3>creation of comics.</n3> But he is also a collector, once the keeper of an invaluable galactic collection. Once… because sadly, his collection has been lost.
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;"><a data-passage="comics1" class="link-internal link-image">
<img src="IMG/1/comi1.png" alt="comics1" style="width: 300px;"></a>
<a data-passage="comics2" class="link-internal link-image">
<img src="IMG/1/comi2.png" alt="comics2" style="width: 300px;"></a></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set _roll = random(1,5)>>
<<switch _roll>>
<<case 1>>
<<if setup.comics is undefined>>
<<run setup.comics = new Audio("music/comics.mp3")>>
<<run setup.comics.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.comics.play().catch(()=>{})>>
<<case 2>>
<!-- üres, nem indul semmi -->
<</switch>>
<<if $sketch is true>> <<goto "sketc">> <</if>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>>
<<if visited() is 0>>
<<set $comics3a to true>>
<<set $comics3b to true>>
<</if>><img src="IMG\1\0049a.png" />
The drive to experiment guides you across this devastated world, as you search for mutated lifeforms. But truth be told, it's not the creatures themselves you're after - they play no direct role in your mission. You're far more interested in how they interact with humanoids. The one you've encountered now… it may have once been humanoid. Or at least, traces of such ancestry likely linger deep within its genome. Yet its body, its instincts - even its neural structure - are unrecognizable now. A relic twisted beyond repair. You don’t need the creature. You need <n3>information</n3>. And to obtain that, you must make a sacrifice. The radiation on this planet doesn’t affect you - but a humanoid sent down without protection will suffer <n3>irreversible damage within minutes</n3>.
<div style="text-align: center;"> <<if $human >= 1>> [[Send a humanoid to the planet's surface|0049a2]] <<else>> <n2>⚠ Get a humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.roarSound is undefined>><<run setup.roarSound = new Audio("music/roar.mp3")>><<run setup.roarSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.roarSound.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\mutant2.mp4" type="video/mp4">
</video>
@@
The experiment runs its course - but you receive <n2>no clear answer</n2>. You can’t understand what compels these <n2>bloodthirsty, aggressive creatures</n2> to suddenly refrain from killing. Something overrides their instinct to destroy… Reproductive drive? Unlikely - they would seek partners among their own kind. Are the humanoid’s physical traits triggering something neurological? Possibly… Could it be that, despite all the mutation, their <n2>sense of beauty</n2> remains intact? So many questions - and none answered yet. What is clear: this demands further study.<n2>More research. More subjects. More sacrifice.</n2>
<div style="text-align: center;">[[Back|Bridge]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ghost.mp4" type="video/mp4">
</video>
@@
Your radar locked onto the humanoid, but by the time you arrived, the <n1>spirit entities</n1> had already claimed them. Still, you won’t leave empty-handed – not that easily. There’s no point in engaging these beings with physical force. Here, you must rely on the power of your <n1>mind</n1>. You prepared for a mental confrontation, ready to unleash your focused will - but in the end, it wasn’t needed. Your mere presence was enough to disturb the <n1>entities</n1>, and with a flicker of dissonance, they vanished, leaving the humanoid behind. A surprisingly easy catch.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human16 to false>>
<<set $human += 1>>
<<set $humanoid to true>><img src="IMG\1\44gh.png" />
The spirit's manifestation trembles, its form distorting as if something is tearing it apart from within. It can no longer hold a physical shape - its body dissolves into mist. The violet glow dims, and the entity slowly rises into the air, drifting away with the wind… until it vanishes. The humanoid remains on the ground - helpless, but alive. <n1>Now, they’re yours to save.</n1>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $male2 to false>>
<<set $male += 1>>
<<if setup.gghSound is undefined>>
<<run setup.gghSound = new Audio("music/gghost.mp3")>>
<<run setup.gghSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.gghSound.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\tarkatan.mp4" type="video/mp4">
</video>
@@
You intended to rely on the element of surprise - but it is you who ends up surprised. What you see defies logic. Based on the scene before you, there can only be a few conclusions: the humanoid is either insane, incredibly brave… or under some kind of mind control. <n3>He is one bite away from bleeding out and dying</n3> - and yet, he doesn't resist. In this situation, attempting dual neural override is a risk. <n3>One slip, and the humanoid dies.</n3> You infiltrate the male's mind instead, gently steering him to take a step back from the Tarkatan. <n3>That’s when the Tarkatan notices you.</n3> With a sharp hiss, he launches toward his weapon, moving with the inhuman speed his species is known for.
<img src="IMG\1\tarkatan1.png" />
This was the moment - a decision made in a fraction of a second. Two options stood before you: <n3>die or settle for just one.</n3> Without hesitation, you reached into the Tarkatan’s mind and <n3>delivered a brutal surge of psychic energy.</n3> The overload was instant. Her nervous system couldn't handle the intensity; her body jerked once before collapsing, lifeless. You had lost the Tarkatan, but <n3>you gained the humanoid.</n3> Sometimes, success demands sacrifice - and sometimes, survival itself is the only victory that matters.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $male3 to false>>
<<set $male += 1>><<set $yakobreed to false>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ahribreed.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 10px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left;">
<b>PROCESS:</b> HYBRIDIZATION ATTEMPT<br>
<b>DNA SEQUENCES:</b> HUMANOID + YAKO ENTITY<br>
<span style="color:#d64141;"><b>STATUS:</b> Successful</span><br>
<b>Outcome:</b> A surge of spiritual energy was released during interphase convergence, resulting in sensor array overload and temporary system blindness. Despite this, DNA synthesis was completed without anomaly. Final result: manifestation of a previously unknown hybridized entity.</div>
<img src="IMG\1\ahribab.png" />
The embryo has been placed into the cell accelerator. Even in the earliest stage of its development, it’s clear that this being is <n1>far from ordinary</n1>. Its body radiates a strong spiritual force - an energy you’ve never encountered in any other hybrid. It’s possible that <n1>the full power of the Yako</n1> was inherited. If that’s true, you’ll have to handle it with extreme care. You decide that once it reaches its final form, you’ll <n1>isolate it from the others</n1>. You can’t risk it interacting with the rest of your captives, or worse - gaining strength during your tests that <n1>you can no longer control</n1>.
<div style="text-align: center;">[[Back|humsub]]</div>
<<set $ahri to true>>
<img src="IMG\1\ahrip.png" />
<div style="text-align: center;">No matter how cooperative she may seem, you can’t let her out of her cell. Out there, she could gather energy <n1>uncontrolled</n1>. She has to stay behind bars.</div>
<div style="text-align: center;"> <div style="border: 2px solid #4286f4; padding: 12px; color: #4286f4; font-family: monospace; font-size: 14px; line-height: 1.4;"> <div style="font-size: 18px; font-weight: bold;">Ahri Tests</div>
<div style="display: flex; justify-content: space-between; margin-top: 12px;">
<div style="flex: 1;"><<if $male >= 1>> [[Test 1.0 – Power Gathering]]<br><<else>><n2>⚠ You need at least one male humanoid</n2><br><</if>><<if $male >= 1>>[[Test 2.0 – The First Time]]<br><<else>><n2>⚠ You need at least one male humanoid</n2><br><</if>></div>
<div style="flex: 1;"><<if $male >= 2>> [[Test 3.0 – Spiritual Energy Scan]]<br><<else>><n2>⚠ Two male humanoids required</n2><br><</if>>
<<if $dog is true>>[[Test 4.0 – Interaction with Other Species]]<br><<else>><n2>⚠ You need a dog - other species would give her too much energy</n2><br>
<</if>> </div></div></div></div>
<div style="text-align: center;">[[Back|Ship]]</div>
<<if setup.aht1Sound is undefined>><<run setup.aht1Sound = new Audio("music/aht1.mp3")>><</if>><<if setup.aht2Sound is undefined>><<run setup.aht2Sound = new Audio("music/aht2.mp3")>><</if>>
<<if Math.random() <= 0.3>>
<<set _choice = Math.random()>>
<<if _choice < 0.5>><<run setup.aht1Sound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><<run setup.aht1Sound.play().catch(()=>{})>><<else>><<run setup.aht2Sound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><<run setup.aht2Sound.play().catch(()=>{})>><</if>><</if>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ahritest1.mp4" type="video/mp4">
</video>
@@
The being you name <n1>Ahri</n1> is so humanoid in appearance that she triggers no fear response in the humanoid subject. It’s only her ears and the occasionally manifesting spiritual tail that set her apart from a typical human. Because of this, no mind control is required to initiate communication between the humanoid test subject and Ahri. In Ahri’s case, no such control is needed either - she possesses, from the moment of her creation, a kind of <n1>innate corruption</n1> that makes her perceive these experiments as pure entertainment.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ahritest2.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 10px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.0; text-align: left;">
<b>TEST:</b> 1.0 – Energy Build-Up Check<br>
<b>SUBJECT:</b> <n3>Ahri</n3><br>
<b>RESULT:</b> When the humanoid’s essence touched Ahri, her eyes lit up and her energy spiked.<br>
<b>Conclusion:</b> Just like you suspected - <n3>Ahri can absorb life energy</n3>, unlike the Yako.
That means getting too close to powerful beings could <n3>be dangerous for you</n3>. </div>
<div style="text-align: center;">[[Experimental data recorded|Ahri]]</div><<if $ahrivirgin is true>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ahritest3.mp4" type="video/mp4">
</video>
@@
Since this test can only be <n1>performed once,</n1> only the video recording of the attempt is now available for review.
<<else>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ahritest3.mp4" type="video/mp4">
</video>
@@
The Ahri has such a humanoid body structure that it has inherited all humanoid organs and body parts. Even the so-called <n3>"hymen".</n3> For this reason, even a fully confident Ahri becomes nervous during the first mating attempt. The first penetration is followed by pain, but this is short-lived and soon subsides.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ahritest4.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 10px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.0; text-align: left;">
<b>TEST:</b> 2.0 – First Encounter<br>
<b>SUBJECT:</b> <n3>Ahri</n3><br>
<b>RESULT:</b> No DNA synthesis occurred. No hybrid or offspring was created.<br>
<b>Conclusion:</b> Even though Ahri’s DNA is only slightly different from the humanoid’s, <n3>the process failed</n3>.
The reason remains unclear, but something is preventing full compatibility.
</div><</if>>
<div style="text-align: center;">[[Experimental data recorded|Ahri]]</div>
<<set $ahrivirgin to true>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ahritest5.mp4" type="video/mp4">
</video>
@@
Ahri’s spiritual tail only appears from time to time. It likely reflects the <n3>level of spiritual energy surging within her body</n3>. To test this, you confine her with two humanoids for an extended period. This way, she’ll have the chance to absorb <n3>small but steady amounts of energy</n3> - just enough to observe changes without risking a major surge.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ahritest6.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 10px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.0; text-align: left;">
<b>TEST:</b> 3.0 – Energy Level<br>
<b>SUBJECT:</b> <n3>Ahri</n3><br>
<b>RESULT:</b> The theory was correct. The appearance of the tail indicates <n3>a high level of accumulated energy</n3>.
<n3>As the energy level increases, the number of tails also rises - up to nine at maximum capacity</n3>.
</div>
<div style="text-align: center;">[[Experimental data recorded|Ahri]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ahritest7.mp4" type="video/mp4">
</video>
@@
The goal of this test is to find out whether, like the Yako, Ahri can drain energy not only from humanoids. To do this, you need a creature that is completely different from a humanoid, but with <n1>very low spiritual energy</n1> - so Ahri doesn’t become too powerful during the test. The “astronaut dog” turns out to be the <n1>perfect choice</n1>.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\ahritest8.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 10px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.0; text-align: left;">
<b>TEST:</b> 4.0 – Interaction with Other Species<br>
<b>SUBJECT:</b> <n3>Ahri</n3><br>
<b>RESULT:</b> The assumption was correct. She is <n3>capable of draining energy</n3> from non-humanoid species as well.
</div>
<div style="text-align: center;">[[Experimental data recorded|Ahri]]</div>
<<set $codeHistory to $codeHistory or []>>
<<set _codeString to String($codeNum).padStart(4, "0")>>
<<if !$codeHistory.includes(_codeString)>>
<<run $codeHistory.push(_codeString)>>
<</if>>
<<set _wasUsed to $codeHistory.includes(_codeString)>>
<span class="code-display<<= _wasUsed ? " used-once" : "" >>"><<= _codeString>></span><<set $sucubus1 to false>>
<<set $lastvisit to "0150">>
<<set $codeNum to 59>>
<<set $oni to true>>
<<set $horse to true>>
<<set $kentaur to true>>
<<set $dog to true>>
<<set $werewolf to true>>
<<set $b019 to true>>
<<set $b022 to true>>
<<set $b026 to true>>
<<set $b033 to true>>
<<set $b046 to true>>
<<set $b053 to true>>
<<set $b102 to true>>
<<set $b150 to true>>
<<set $tutbridge to false>>
<<set $tutor to true>>
<<set $tutorial to false>>
<<set $tutbridge0 to false>>
<<set $humanoid to true>>
<<set $ahrinew to true>>
<<set $xeno to true>>
<<set $horsehuman to true>>
<<set $sadako to true>>
<<set $vex to true>>
<<set $muffet to true>>
<<set $human to 10>>
<<set $male to 10>>
<<set $human to {}>>\
<<for _i to 1; _i <= 19; _i++>>
<<set $human[_i] = false>>
<</for>>
<<set $male to {}>>
<<for _i to 1; _i <= 11; _i++>>
<<set $male[_i] = false>>
<</for>><img src="IMG/UI1A.png" /><<set $codeNum to $codeNum or 0>><<set $codeHistory to $codeHistory or []>><<run window.addToCodeHistory = function (codeStr, limit=300) { const hist = State.variables.codeHistory || (State.variables.codeHistory = []); if (!hist.includes(codeStr)) { hist.push(codeStr); if (hist.length > limit) hist.splice(0, hist.length - limit); } }; window.updateCodeDisplay = function () { const code = String(State.variables.codeNum).padStart(4, "0"); const seen = (State.variables.codeHistory || []).includes(code); const css = seen ? "code-display visited" : "code-display"; return '<span class="' + css + '">' + code + '</span>'; }; window.bumpDigit = function (num, pos, delta) { let s = String(Math.max(0, Math.min(9999, num))).padStart(4, "0"); pos = Math.max(0, Math.min(3, pos)); const d = (s.charCodeAt(pos) - 48 + (delta > 0 ? 1 : -1) + 10) % 10; s = s.substring(0, pos) + String(d) + s.substring(pos + 1); const next = parseInt(s, 10); return next; }; window._unbindCodeKeys = function(){ try{ document.removeEventListener("keydown", window._codeKeyHandler, {capture:true}); }catch(_){} try{ document.removeEventListener("keydown", window._codeKeyHandler); }catch(_){} window._codeKeyHandler = null; }; >><<set _codeString to String($codeNum).padStart(4, "0")>><<if !$codeHistory.includes(_codeString)>><<run window.addToCodeHistory(_codeString)>><</if>><div id="bridgeCodeUI"><div id="digitPad"><div class="digit-row"><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 0, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 1, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 2, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 3, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>></div><div id="codeDisplay"><span id="codeValue"><<= window.updateCodeDisplay()>></span></div><div class="digit-row"><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 0, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 1, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 2, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 3, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>></div></div><div style="text-align:center; margin-top:10px;"><<link "HYPERSPACE JUMP">><<run window.addToCodeHistory(String($codeNum).padStart(4,"0"))>><<goto "check_answer">><</link>><br>[[Back|Ship]]</div></div><<script>>(function(){ if (window._unbindCodeKeys) window._unbindCodeKeys(); window._codeKeyHandler = function(e) { if (State.passage !== "BridgeWASD") { if (window._unbindCodeKeys) window._unbindCodeKeys(); return; } const a = document.activeElement; if (a && a.tagName && a.tagName.toLowerCase() === "input") return; let d = 0; const k = (e.key || "").toLowerCase(); switch (k) { case "w": d = 1; break; case "s": d = -1; break; case "d": d = 10; break; case "a": d = -10; break; case " ": case "space": e.preventDefault(); e.stopPropagation(); if (typeof window.addToCodeHistory === "function") { window.addToCodeHistory(String(State.variables.codeNum).padStart(4,"0")); } Engine.play("check_answer"); return; default: return; } if (d !== 0) { e.preventDefault(); e.stopPropagation(); const n = Math.max(0, Math.min(9999, State.variables.codeNum + d)); State.variables.codeNum = n; const el = document.getElementById("codeValue"); if (el && typeof window.updateCodeDisplay === "function") { el.innerHTML = window.updateCodeDisplay(); } } }; document.addEventListener("keydown", window._codeKeyHandler, {passive:false, capture:true}); document.addEventListener("keydown", window._codeKeyHandler); if (Story && Story.on) { Story.on("passage:before", function(){ if (window._unbindCodeKeys) window._unbindCodeKeys(); }); } })();<</script>><<if $tutbridge0 is true>><<goto "tutorialbridge1">><</if>><<if $tutbridge is true>><<goto "tutorialbridge2">><</if>><<if $abridge is true>><<goto "abridge">><</if>><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = 0.4>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG/UI2A.png" /><<set $codeNum to $codeNum or 0>><<set $codeHistory to $codeHistory or []>><<run window.addToCodeHistory = function (codeStr, limit=300) { const hist = State.variables.codeHistory || (State.variables.codeHistory = []); if (!hist.includes(codeStr)) { hist.push(codeStr); if (hist.length > limit) hist.splice(0, hist.length - limit); } }; window.updateCodeDisplay = function () { const code = String(State.variables.codeNum).padStart(4, "0"); const seen = (State.variables.codeHistory || []).includes(code); const css = seen ? "code-display visited" : "code-display"; return '<span class="' + css + '">' + code + '</span>'; }; window.bumpDigit = function (num, pos, delta) { let s = String(Math.max(0, Math.min(9999, num))).padStart(4, "0"); pos = Math.max(0, Math.min(3, pos)); const d = (s.charCodeAt(pos) - 48 + (delta > 0 ? 1 : -1) + 10) % 10; s = s.substring(0, pos) + String(d) + s.substring(pos + 1); const next = parseInt(s, 10); return next; }; window._unbindCodeKeys = function(){ try{ document.removeEventListener("keydown", window._codeKeyHandler, {capture:true}); }catch(_){} try{ document.removeEventListener("keydown", window._codeKeyHandler); }catch(_){} window._codeKeyHandler = null; }; >><div id="bridgeCodeUI"><div id="digitPad"><div class="digit-row"><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 0, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 1, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 2, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 3, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>></div><div id="codeDisplay"><span id="codeValue"><<= window.updateCodeDisplay()>></span></div><div class="digit-row"><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 0, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 1, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 2, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 3, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>></div></div><div style="text-align:center; margin-top:10px;"><span id="jumpTrigger"><<link "HYPERSPACE JUMP">><<run window.addToCodeHistory(String($codeNum).padStart(4,"0"))>><<goto "check_answer">><</link>></span><br>[[Back|Ship]]</div></div><<script>>(function(){ if (window._unbindCodeKeys) window._unbindCodeKeys(); window._codeKeyHandler = function(e){ const root = document.getElementById('bridgeCodeUI'); if (!root) { if (window._unbindCodeKeys) window._unbindCodeKeys(); return; } const a = document.activeElement; if (a && a.tagName && a.tagName.toLowerCase() === "input") return; const k = (e.key || "").toLowerCase(); let d = 0; switch(k){ case "arrowup": d = 1; break; case "arrowdown": d = -1; break; case "arrowright": d = 10; break; case "arrowleft": d = -10; break; case "enter": e.preventDefault(); e.stopPropagation(); var j = root.querySelector('#jumpTrigger a, #jumpTrigger .link-internal'); if (j && typeof j.click === "function") { j.click(); } else { if (typeof window.addToCodeHistory === "function") window.addToCodeHistory(String(State.variables.codeNum).padStart(4,"0")); Engine.play("check_answer"); } return; default: return; } if (d !== 0) { e.preventDefault(); e.stopPropagation(); const n = Math.max(0, Math.min(9999, (State.variables.codeNum|0) + d)); State.variables.codeNum = n; const el = document.getElementById("codeValue"); if (el && typeof window.updateCodeDisplay === "function") { el.innerHTML = window.updateCodeDisplay(); } } }; document.addEventListener("keydown", window._codeKeyHandler, {passive:false, capture:true}); if (Story && Story.on) { Story.on("passage:before", function(){ if (window._unbindCodeKeys) window._unbindCodeKeys(); }); } })();<</script>><<if $tutbridge0 is true>><<goto "tutorialbridge1">><</if>><<if $tutbridge is true>><<goto "tutorialbridge2">><</if>><<if $abridge is true>><<goto "abridge">><</if>><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = 0.4>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG\UI3A.png" />
<div class="coord-wrap">
<<textbox "$answer" "">><div style="margin-top: 10px;">
<div style="text-align:center;">[[HYPERSPACE JUMP->check_answerM]]</div></div><div style="text-align:center;">[[Back|Ship]]</div>
<<set $codeHistory to $codeHistory or []>>
<<script>>
(function () {
/* Takarítsuk le a régi névterezett handlereket, ha maradtak */
if (window.jQuery) {
$(document).off('.coordNS');
}
/* Ezen a passage-on, amikor megjelenik, kössük a mezőt és a billentyűket */
$(document).one(':passagedisplay.coordNS', function (ev) {
var $root = $(ev.content);
var $input = $root.find('.macro-textbox').first(); // <<textbox>> inputja
if ($input.length === 0) return;
function onlyDigits(s){ return (s||'').replace(/\D/g,''); }
function norm4(s){
var raw = onlyDigits(s).slice(0,4);
if (!raw) return '';
var n = Math.min(9999, parseInt(raw,10) || 0);
return String(n).padStart(4,'0');
}
function refreshVisited(){
var norm = norm4($input.val());
var seen = !!norm && State.variables.codeHistory && State.variables.codeHistory.includes(norm);
$input.toggleClass('visited', seen);
}
/* Induló érték tisztítása + fókusz */
var start = onlyDigits(State.variables.answer || '').slice(0,4);
$input.val(start);
setTimeout(function(){
$input.focus();
var el = $input.get(0);
if (el && el.setSelectionRange) el.setSelectionRange(start.length, start.length);
}, 0);
/* Mezőn belüli beírás: csak szám, max 4; state sync + visited */
$input.on('input.coordNS', function(){
var el = this;
var digits = onlyDigits(el.value).slice(0,4);
if (digits !== el.value) {
el.value = digits;
if (el.setSelectionRange) el.setSelectionRange(digits.length, digits.length);
}
State.variables.answer = el.value;
refreshVisited();
});
/* Enter a mezőben → check_answerM */
$input.on('keydown.coordNS', function(e){
if (e.key === 'Enter' || e.keyCode === 13) {
e.preventDefault();
State.variables.answer = this.value;
Engine.play('check_answerM');
}
});
/* Globális: ha NEM inputon vagy, 0–9 → írjon a mezőbe; Enter → ugrás */
$(document).on('keydown.coordNS', function(e){
var $t = $(e.target);
if ($t.is('input, textarea, [contenteditable]')) return;
var isDigit = (/^[0-9]$/).test(e.key) || (/^Numpad[0-9]$/).test(e.code || '');
if (isDigit) {
e.preventDefault();
var digit = /^[0-9]$/.test(e.key) ? e.key : (e.code || '').replace('Numpad','');
var curr = onlyDigits($input.val());
if (curr.length < 4) {
var next = (curr + digit).slice(0,4);
$input.val(next).trigger('input').focus();
} else {
$input.focus();
}
return;
}
if (e.key === 'Enter' || e.keyCode === 13) {
e.preventDefault();
State.variables.answer = $input.val();
Engine.play('check_answerM');
}
});
/* Induló visited állapot */
refreshVisited();
/* Következő passage-nál mindent leveszünk (ne „szivárogjon”) */
$(document).one(':passagedisplay.coordNS', function(){
$(document).off('.coordNS');
$input.off('.coordNS');
});
});
})();
<</script>>
<<if $tutbridge0 is true>> <<goto "tutorialbridge1">> <</if>><<if $tutbridge is true>> <<goto "tutorialbridge2">> <</if>><<if $abridge is true>> <<goto "abridge">> <</if>><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = 0.4>><</if>><<run setup.clickSound.play().catch(()=>{})>> <<set _raw = ($answer is undefined) ? "" : $answer>>
<<set _digits = _raw.replace(/[^0-9]/g, "").slice(0,4)>>
<<if _digits == "">>
<img src="IMG\bridge2.png" />
<div style="text-align: center;">
<n2>An error occurred before initiating hyperspace jump.</n2>
The specified coordinates do not correspond to any known planet, star, or system.
Please try entering a different set of coordinates.
</div>
<div style="text-align: center; margin-top:10px;">
[[Back|Bridge]]
</div>
<<return>>
<</if>>
<<set _n = Math.min(9999, Number(_digits))>>
<<set _answer = String(_n).padStart(4, "0")>>
<<if Story.has(_answer)>>
<<set $answer = _answer>>
<<if !$codeHistory.includes(_answer)>><<run $codeHistory.push(_answer)>><</if>>
<<goto _answer>>
<</if>>
<img src="IMG\bridge2.png" />
<div style="text-align: center;">
<n2>An error occurred before initiating hyperspace jump.</n2>
The specified coordinates do not correspond to any known planet, star, or system.
Please try entering a different set of coordinates.
</div>
<div style="text-align: center; margin-top:10px;">
[[Back|Bridge]]
</div>
<img src="IMG\hid.png" /><div style="text-align: center;"> Before you lies the <n1>Galactic Map!</n1> The gateway to the universe, where every adventure begins. Here you can enter the coordinates that will determine the course of your journey. <n1>Decide which method suits you best.</n1> </div><div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;"><a data-passage="UI1" class="link-internal link-image">
<img src="IMG/1/UI1.png" alt="UI1" style="width: 250px;">
</a><a data-passage="UI2" class="link-internal link-image">
<img src="IMG/1/UI2.png" alt="UI2" style="width: 250px;">
</a><a data-passage="UI3" class="link-internal link-image">
<img src="IMG/1/UI3.png" alt="UI3" style="width: 250px;"></a>
</div>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\UI1A.png" />
Your chosen interface: You can enter the coordinates into the Galactic Map interface by using the <n1>WASD keys</n1> on your keyboard. <n1>W / S</n1> will increase or decrease the value by <n1>1</n1>, while <n1>A / D</n1> will adjust it by <n1>10</n1>. Hold the keys down to let it spin freely. When you're done, <n1>click Launch or hit SPACE.</n1>
<div style="text-align: center;">If this interface suits you, we can move forward. If not, you still have the chance to choose another one:
[[This one is fine|prolog0]]
[[Choose another|Settings]]
</div>
<<set $wasd to true>>
<<set $arrow to false>>
<<set $manual to false>>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG\UI2A.png" />
Your chosen interface: You can enter the coordinates into the Galactic Map interface by using the <n1>arrow keys</n1> on your keyboard. <n1>Up / Down</n1> will increase or decrease the value by <n1>1</n1>, while <n1>Left / Right</n1> will adjust it by <n1>10</n1>. Hold the keys down to let it spin freely. When you're done, <n1>click Launch or press ENTER.</n1>
<div style="text-align: center;">If this interface suits you, we can move forward. If not, you still have the chance to choose another one:
[[This one is fine|prolog0]]
[[Choose another|Settings]]
</div>
<<set $wasd to false>>
<<set $arrow to true>>
<<set $manual to false>>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG\UI3A.png" />
You can enter the coordinates into the Galactic Map interface by using your keyboard. The coordinates must be entered manually and range from <n1>0000 to 9999</n1>. However, it is not always necessary to type all four digits. For example, if your destination is planet <n1>0099</n1>, simply enter <n1>99</n1> and the system will automatically add the leading zeros. When you're done, <n1>click Launch or press ENTER.</n1>
<div style="text-align: center;">If this interface suits you, we can move forward. If not, you still have the chance to choose another one:
[[This one is fine|prolog0]]
[[Choose another|Settings]]
</div>
<<set $wasd to false>>
<<set $arrow to false>>
<<set $manual to true>>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\1\0100a.png" />
You step into the only tiny building on the planet. Inside, however, what truly surprises you is not who you find, but what: a <n3>Mechronite.</n3> This unique and advanced robotic lifeform possesses a highly developed capacity for abstract thought and can create works of art that surpass those of most known species. Their creations are at once coldly mechanical and breathtakingly imaginative, as if technology and artistry were fused into one.
<img src="IMG\1\0100b.png" />
<img src="IMG\1\0100c.png" />
At this point, the Mechronite - who refers to himself as <n3>The Sketcher</n3> - began to tell his tale. He had been traveling across the galaxy when his ship was attacked by space pirates. Though he managed to escape, his vessel was badly damaged. As he continued his journey, much of his cargo was lost… <n3>scattered throughout the void of space.</n3> That cargo was no ordinary shipment - it contained some of the rarest and most valuable <n3>comic books</n3> in existence. Many of them were his own creations. Now he asks for your help, as a seasoned traveler, to find and recover the lost collection. But the task is not so simple. <n3>Each comic is encrypted, its code split into two separate halves.</n3>This safeguard ensured that, if ever stolen, the comics could not be sold or misused. Only The Sketcher himself knows how to reunite the halves and decode them - restoring the comics to their true, readable form.
<img src="IMG\1\0100d.png" />
The<n3> encrypted codes of the comics</n3> are stored within these <n3>specialized containers.</n3> When the cargo was lost to space, most of the cylinders likely slipped into orbit around nearby planets, where they continue to drift to this day. Because of their small size, spotting them will be difficult - you’ll have to keep your eyes sharp. <n3>And where exactly should you search?</n3> Only the Sketcher can tell you that. He cannot give you precise coordinates, but he still remembers the route along which he fled across the galaxy…
<img src="IMG\1\art.png" />
You tell him that during your travels you’ve <n3>already found a few paintings</n3> and show them, hoping one might be among his lost works. The Sketcher, however, says none of them are his: they’re the remnants of an unknown artist. Perhaps the <n3>work of another Mechronite</n3> who, like him, lost their collection. Since the Sketcher considers them high quality, you decide to keep collecting them.
<div style="text-align: center;">[[Back|sketch]]</div>
<<set _roll = random(1,5)>>
<<switch _roll>>
<<case 1>>
<<if setup.comics is undefined>>
<<run setup.comics = new Audio("music/comics.mp3")>>
<<run setup.comics.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.comics.play().catch(()=>{})>>
<<case 2>>
<!-- üres, nem indul semmi -->
<</switch>>
<<set $sketch to false>> <<set $sketch1 to true>>
<<set $comics1a to true>><<set $comics1b to true>>
<<set $comics2a to true>><<set $comics2b to true>>
<<set $comics3a to true>><<set $comics3b to true>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\cloc.png" />
The Sketcher lays out his escape route on a map, <n3>marking the points</n3> where he believes parts of his cargo may have been lost. You <n3>won’t receive exact coordinates,</n3> but even this information will guide you in your search.
<div style="border: 2px solid #6aa6c9; padding: 10px; color: #6aa6c9; font-family: monospace; font-size: 15px; line-height: 1.0; text-align: left; margin: 8px 0;">
<b>COMIC TITLE:</b> <span style="color:#d67c0a;">Cursebreaker - Part I.</span><br>
<b>LOCATION:</b> 0050–0070<br>
<b>PROGRESS:</b><n3> 2/<<print $comicsa>></n3>
</div>
<div style="border: 2px solid #6aa6c9; padding: 10px; color: #6aa6c9; font-family: monospace; font-size: 15px; line-height: 1.0; text-align: left; margin: 8px 0;">
<b>COMIC TITLE:</b> <span style="color:#d67c0a;">A Goblin’s Diary - Part I.</span><br>
<b>LOCATION:</b> 0130–0150<br>
<b>PROGRESS:</b><n3> 2/<<print $comicsb>></n3>
</div>
<div style="border: 2px solid #6aa6c9; padding: 10px; color: #6aa6c9; font-family: monospace; font-size: 15px; line-height: 1.0; text-align: left; margin: 8px 0;">
<b>COMIC TITLE:</b> <span style="color:#d67c0a;">Unlucky Patty’s Farm - Part I.</span><br>
<b>LOCATION:</b> 0150–0170<br>
<b>PROGRESS:</b><n3> 2/<<print $comicsc>></n3>
</div>
<div style="text-align: center;">[[Back|sketch]]</div>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\com.png" />
As the catalog shows, the <n3>Sketcher</n3> collection is still <n3>heavily incomplete.</n3> There is still much left to track down and recover. However, any item for which you have <n3>already found both code fragments</n3> can be viewed here.<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<<if $comicsa is 2>>
<a data-passage="cursepart1" class="link-internal link-image">
<img src="IMG\1\cursepart1.png" alt="cursepart1" style="width: 280px;">
</a>
<</if>>
<<if $comicsb is 2>>
<a data-passage="goblinpart1" class="link-internal link-image">
<img src="IMG\1\goblinpart1.png" alt="goblinpart1" style="width: 280px;">
</a>
<</if>>
<<if $comicsc is 2>>
<a data-passage="unluckypart1" class="link-internal link-image">
<img src="IMG\1\unluckypart1.png" alt="unluckypart1" style="width: 280px;">
</a>
<</if>>
</div>
<div style="text-align: center;">[[Back|sketch]]</div>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>>
<img src="IMG/1/comics/nun/1.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/nun/2.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/nun/3.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/nun/4.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/nun/5.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/nun/6.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/nun/7.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/nun/8.png" style="display:block; margin:0; padding:0; border:0;" />
<div style="text-align: center;"><<return "Back">></div>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0100d.png" />
The container matches <n1>The Sketcher’s</n1> description, which strongly suggests you’ve found a comic fragment. Only the Sketcher can fully decode it, but the title can already be identified in the code: <n1>Cursebreaker – Part I.</n1> - you’ve uncovered one of its fragments.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $comicsa +=1>>
<<set $comics1a to false>><img src="IMG\1\0100d.png" />
The container matches <n1>The Sketcher’s</n1> description, which strongly suggests you’ve found a comic fragment. Only the Sketcher can fully decode it, but the title can already be identified in the code: <n1>Cursebreaker – Part I.</n1> - you’ve uncovered one of its fragments.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $comicsa +=1>>
<<set $comics1b to false>><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics1 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics2 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics3 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics4 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics5 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics6 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics7 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics8 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG/bridge.png" /><div style="text-align: center;">Here you see the interface of the Galactic Map. Your task is simple: enter the correct coordinate. As you can see, I’ve helped a bit - part of the coordinate is already filled in. All you need to do is provide the last two digits. Use the <n3>WASD keys</n3> on your keyboard to adjust the value. <n3>W / S</n3> will increase or decrease by <n3>1</n3>, <n3>A / D</n3> will adjust by <n3>10.</n3> Hold the keys down to let it spin freely. When you're done, <n1>click Launch or hit SPACE.</n1></div><<set $codeNum to $codeNum or 0>><<set $codeHistory to $codeHistory or []>><<run window.updateCodeDisplay = function() { const code = String(State.variables.codeNum).padStart(4, "0"); const seen = State.variables.codeHistory.includes(code); const css = seen ? "code-display visited" : "code-display"; return '<span class="' + css + '">' + code + '</span>'; }; window.bumpDigit = function (num, pos, delta) { let s = String(Math.max(0, Math.min(9999, num))).padStart(4, "0"); pos = Math.max(0, Math.min(3, pos)); const d = (s.charCodeAt(pos) - 48 + (delta > 0 ? 1 : -1) + 10) % 10; s = s.substring(0, pos) + String(d) + s.substring(pos + 1); return parseInt(s, 10); }; window._unbindCodeKeys = function(){ try{ document.removeEventListener("keydown", window._codeKeyHandler, {capture:true}); }catch(_){} try{ document.removeEventListener("keydown", window._codeKeyHandler); }catch(_){} window._codeKeyHandler = null; }; >><<set _codeString to String($codeNum).padStart(4, "0")>><<if !$codeHistory.includes(_codeString)>><<run $codeHistory.push(_codeString)>><</if>><div id="bridgeCodeUI" style="text-align:center;"><div id="digitPad"><div class="digit-row"><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 0, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 1, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 2, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 3, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>></div><div id="codeDisplay" style="margin:8px 0;"><span id="codeValue"><<= window.updateCodeDisplay()>></span></div><div class="digit-row"><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 0, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 1, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 2, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 3, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>></div></div><div style="text-align: center; margin-top: 10px;">[[HYPERSPACE JUMP->check_answert1]]<br>[[Back|Ship]]</div><<script>>(function(){ if (window._unbindCodeKeys) window._unbindCodeKeys(); window._codeKeyHandler = function(e) { const active = document.activeElement; if (active && active.tagName && active.tagName.toLowerCase() === "input") return; let d = 0; const k = (e.key||"").toLowerCase(); switch (k) { case "w": d = 1; break; case "s": d = -1; break; case "d": d = 10; break; case "a": d = -10; break; case " ": case "space": e.preventDefault(); e.stopPropagation(); Engine.play("check_answert1"); return; default: return; } if (d !== 0) { e.preventDefault(); e.stopPropagation(); const n = Math.max(0, Math.min(9999, (State.variables.codeNum|0) + d)); State.variables.codeNum = n; const el = document.getElementById("codeValue"); if (el && typeof window.updateCodeDisplay === 'function') { el.innerHTML = window.updateCodeDisplay(); } } }; document.addEventListener("keydown", window._codeKeyHandler, {passive:false, capture:true}); if (Story && Story.on) { Story.on("passage:before", function(){ if (window._unbindCodeKeys) window._unbindCodeKeys(); }); } })();<</script>><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = 0.4>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG/bridge.png" /><div style="text-align: center;">Here you see the interface of the Galactic Map. Your task is simple: enter the correct coordinate. As you can see, I’ve helped a bit - part of the coordinate is already filled in. All you need to do is provide the last two digits. Use the <n3>ARROW keys</n3> on your keyboard to adjust the value. <n3>UP / DOWN</n3> will increase or decrease by <n3>1</n3>, <n3>LEFT / RIGHT</n3> will adjust by <n3>10.</n3> Hold the keys down to let it spin freely. When you're done, <n1>click Launch or press ENTER.</n1></div><<set $codeNum to $codeNum or 0>><<set $codeHistory to $codeHistory or []>><<run window.updateCodeDisplay = function() { const code = String(State.variables.codeNum).padStart(4, "0"); const seen = State.variables.codeHistory.includes(code); const css = seen ? "code-display visited" : "code-display"; return '<span class="' + css + '">' + code + '</span>'; }; window.bumpDigit = function (num, pos, delta) { let s = String(Math.max(0, Math.min(9999, num))).padStart(4, "0"); pos = Math.max(0, Math.min(3, pos)); const d = (s.charCodeAt(pos) - 48 + (delta > 0 ? 1 : -1) + 10) % 10; s = s.substring(0, pos) + String(d) + s.substring(pos + 1); return parseInt(s, 10); }; window._unbindCodeKeys = function(){ try{ document.removeEventListener("keydown", window._codeKeyHandler, {capture:true}); }catch(_){} try{ document.removeEventListener("keydown", window._codeKeyHandler); }catch(_){} window._codeKeyHandler = null; }; >><<set _codeString to String($codeNum).padStart(4, "0")>><<if !$codeHistory.includes(_codeString)>><<run $codeHistory.push(_codeString)>><</if>><div id="bridgeCodeUI" style="text-align:center;"><div id="digitPad"><div class="digit-row"><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 0, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 1, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 2, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 3, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>></div><div id="codeDisplay" style="margin:8px 0;"><span id="codeValue"><<= window.updateCodeDisplay()>></span></div><div class="digit-row"><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 0, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 1, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 2, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 3, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>></div></div><div style="text-align: center; margin-top: 10px;">[[HYPERSPACE JUMP->check_answert1]]<br>[[Back|Ship]]</div><<script>>(function(){ if (window._unbindCodeKeys) window._unbindCodeKeys(); window._codeKeyHandler = function(e) { const active = document.activeElement; if (active && active.tagName && active.tagName.toLowerCase() === "input") return; const k = (e.key||"").toLowerCase(); let d = 0; switch (k) { case "arrowup": e.preventDefault(); d = 1; break; case "arrowdown": e.preventDefault(); d = -1; break; case "arrowright": e.preventDefault(); d = 10; break; case "arrowleft": e.preventDefault(); d = -10; break; case "enter": e.preventDefault(); Engine.play("check_answert1"); return; default: return; } if (d !== 0) { const n = Math.max(0, Math.min(9999, (State.variables.codeNum|0) + d)); State.variables.codeNum = n; const el = document.getElementById("codeValue"); if (el && typeof window.updateCodeDisplay === 'function') { el.innerHTML = window.updateCodeDisplay(); } } }; document.addEventListener("keydown", window._codeKeyHandler, {passive:false, capture:true}); if (Story && Story.on) { Story.on("passage:before", function(){ if (window._unbindCodeKeys) window._unbindCodeKeys(); }); } })();<</script>><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = 0.4>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG\UI3A.png" />
<div style="text-align: center;">The task is simple: type in the correct coordinate - <n1>9999.</n1></div>
<div class="coord-wrap">
<<textbox "$answer" "">><div style="margin-top: 10px;">
<div style="text-align:center;">[[HYPERSPACE JUMP->check_man1]]</div></div><div style="text-align:center;">[[Back|Ship]]</div>
<<set $codeHistory to $codeHistory or []>>
<<script>>
(function () {
/* Takarítsuk le a régi névterezett handlereket, ha maradtak */
if (window.jQuery) {
$(document).off('.coordNS');
}
/* Ezen a passage-on, amikor megjelenik, kössük a mezőt és a billentyűket */
$(document).one(':passagedisplay.coordNS', function (ev) {
var $root = $(ev.content);
var $input = $root.find('.macro-textbox').first(); // <<textbox>> inputja
if ($input.length === 0) return;
function onlyDigits(s){ return (s||'').replace(/\D/g,''); }
function norm4(s){
var raw = onlyDigits(s).slice(0,4);
if (!raw) return '';
var n = Math.min(9999, parseInt(raw,10) || 0);
return String(n).padStart(4,'0');
}
function refreshVisited(){
var norm = norm4($input.val());
var seen = !!norm && State.variables.codeHistory && State.variables.codeHistory.includes(norm);
$input.toggleClass('visited', seen);
}
/* Induló érték tisztítása + fókusz */
var start = onlyDigits(State.variables.answer || '').slice(0,4);
$input.val(start);
setTimeout(function(){
$input.focus();
var el = $input.get(0);
if (el && el.setSelectionRange) el.setSelectionRange(start.length, start.length);
}, 0);
/* Mezőn belüli beírás: csak szám, max 4; state sync + visited */
$input.on('input.coordNS', function(){
var el = this;
var digits = onlyDigits(el.value).slice(0,4);
if (digits !== el.value) {
el.value = digits;
if (el.setSelectionRange) el.setSelectionRange(digits.length, digits.length);
}
State.variables.answer = el.value;
refreshVisited();
});
/* Enter a mezőben → check_answerM */
$input.on('keydown.coordNS', function(e){
if (e.key === 'Enter' || e.keyCode === 13) {
e.preventDefault();
State.variables.answer = this.value;
Engine.play('check_man1');
}
});
/* Globális: ha NEM inputon vagy, 0–9 → írjon a mezőbe; Enter → ugrás */
$(document).on('keydown.coordNS', function(e){
var $t = $(e.target);
if ($t.is('input, textarea, [contenteditable]')) return;
var isDigit = (/^[0-9]$/).test(e.key) || (/^Numpad[0-9]$/).test(e.code || '');
if (isDigit) {
e.preventDefault();
var digit = /^[0-9]$/.test(e.key) ? e.key : (e.code || '').replace('Numpad','');
var curr = onlyDigits($input.val());
if (curr.length < 4) {
var next = (curr + digit).slice(0,4);
$input.val(next).trigger('input').focus();
} else {
$input.focus();
}
return;
}
if (e.key === 'Enter' || e.keyCode === 13) {
e.preventDefault();
State.variables.answer = $input.val();
Engine.play('check_man1');
}
});
/* Induló visited állapot */
refreshVisited();
/* Következő passage-nál mindent leveszünk (ne „szivárogjon”) */
$(document).one(':passagedisplay.coordNS', function(){
$(document).off('.coordNS');
$input.off('.coordNS');
});
});
})();
<</script>>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = 0.4>><</if>><<run setup.clickSound.play().catch(()=>{})>> <<if $wasd is true>> <<goto "tutwasd1">> <</if>>
<<if $arrow is true>> <<goto "tutarrow1">> <</if>>
<<if $manual is true>> <<goto "tutman1">> <</if>><<nobr>>
/* 4 számjegy kinyerése az $answer-ből */
<<set _raw = String($answer)>>
<<set _digits = _raw.replace(/[^0-9]/g,'').slice(0,4)>>
<<set _answer = _digits.padStart(4,'0')>>
<<if _answer == "9999">>
<<goto "9999">>
<<else>>
<<run if (!$codeHistory) { $codeHistory = []; } >>
<<run if (_answer && !$codeHistory.includes(_answer)) { $codeHistory.push(_answer); } >>
<img src="IMG/bridge2.png" />
<div style="text-align: center;">
<n2>An error occurred before initiating hyperspace jump.</n2>
Please follow the tutorial mission and head to [[planet 9999 first.|tutorialbridge1]]
</div>
<</if>>
<</nobr>>
<<nobr>>
/* 4 számjegy kinyerése az $answer-ből */
<<set _raw = String($answer)>>
<<set _digits = _raw.replace(/[^0-9]/g,'').slice(0,4)>>
<<set _answer = _digits.padStart(4,'0')>>
<<if _answer == "8888">>
<<goto "8888">>
<<else>>
<<run if (!$codeHistory) { $codeHistory = []; } >>
<<run if (_answer && !$codeHistory.includes(_answer)) { $codeHistory.push(_answer); } >>
<img src="IMG/bridge2.png" />
<div style="text-align: center;">
<n2>An error occurred before initiating hyperspace jump.</n2>
Please follow the tutorial mission and head to [[planet 8888 first.|tutorialbridge1]]
</div>
<</if>>
<</nobr>>
<img src="IMG/UI1A.png" /><<set $codeNum to $codeNum or 0>><<set $codeHistory to $codeHistory or []>><<run window.updateCodeDisplay = function() { const code = String(State.variables.codeNum).padStart(4, "0"); const seen = State.variables.codeHistory.includes(code); const css = seen ? "code-display visited" : "code-display"; return '<span class="' + css + '">' + code + '</span>'; }; window.bumpDigit = function (num, pos, delta) { let s = String(Math.max(0, Math.min(9999, num))).padStart(4, "0"); pos = Math.max(0, Math.min(3, pos)); const d = (s.charCodeAt(pos) - 48 + (delta > 0 ? 1 : -1) + 10) % 10; s = s.substring(0, pos) + String(d) + s.substring(pos + 1); return parseInt(s, 10); }; window._unbindCodeKeys = function(){ try{ document.removeEventListener("keydown", window._codeKeyHandler, {capture:true}); }catch(_){} try{ document.removeEventListener("keydown", window._codeKeyHandler); }catch(_){} window._codeKeyHandler = null; }; >><<set _codeString to String($codeNum).padStart(4, "0")>><<if !$codeHistory.includes(_codeString)>><<run $codeHistory.push(_codeString)>><</if>><div id="bridgeCodeUI" style="text-align:center;"><div id="digitPad"><div class="digit-row"><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 0, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 1, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 2, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 3, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>></div><div id="codeDisplay" style="margin:8px 0;"><span id="codeValue"><<= window.updateCodeDisplay()>></span></div><div class="digit-row"><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 0, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 1, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 2, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 3, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>></div></div><div style="text-align: center; margin-top: 10px;">[[HYPERSPACE JUMP->check_answert2]]<br>[[Back|Ship]]</div><<script>>(function(){ if (window._unbindCodeKeys) window._unbindCodeKeys(); window._codeKeyHandler = function(e) { const active = document.activeElement; if (active && active.tagName && active.tagName.toLowerCase() === "input") return; let d = 0; const k = (e.key||"").toLowerCase(); switch (k) { case "w": d = 1; break; case "s": d = -1; break; case "d": d = 10; break; case "a": d = -10; break; case " ": case "space": e.preventDefault(); e.stopPropagation(); Engine.play("check_answert2"); return; default: return; } if (d !== 0) { e.preventDefault(); e.stopPropagation(); const n = Math.max(0, Math.min(9999, (State.variables.codeNum|0) + d)); State.variables.codeNum = n; const el = document.getElementById("codeValue"); if (el && typeof window.updateCodeDisplay === 'function') { el.innerHTML = window.updateCodeDisplay(); } } }; document.addEventListener("keydown", window._codeKeyHandler, {passive:false, capture:true}); if (Story && Story.on) { Story.on("passage:before", function(){ if (window._unbindCodeKeys) window._unbindCodeKeys(); }); } })();<</script>><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = 0.4>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\UI2A.png" /><<set $codeNum to $codeNum or 0>><<set $codeHistory to $codeHistory or []>><<run window.updateCodeDisplay = function() { const code = String(State.variables.codeNum).padStart(4, "0"); const seen = State.variables.codeHistory.includes(code); const css = seen ? "code-display visited" : "code-display"; return '<span class="' + css + '">' + code + '</span>'; }; window.bumpDigit = function (num, pos, delta) { let s = String(Math.max(0, Math.min(9999, num))).padStart(4, "0"); pos = Math.max(0, Math.min(3, pos)); const d = (s.charCodeAt(pos) - 48 + (delta > 0 ? 1 : -1) + 10) % 10; s = s.substring(0, pos) + String(d) + s.substring(pos + 1); return parseInt(s, 10); }; window._unbindCodeKeys = function(){ try{ document.removeEventListener("keydown", window._codeKeyHandler, {capture:true}); }catch(_){} try{ document.removeEventListener("keydown", window._codeKeyHandler); }catch(_){} window._codeKeyHandler = null; }; >><<set _codeString to String($codeNum).padStart(4, "0")>><<if !$codeHistory.includes(_codeString)>><<run $codeHistory.push(_codeString)>><</if>><div id="bridgeCodeUI" style="text-align:center;"><div id="digitPad"><div class="digit-row"><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 0, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 1, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 2, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▲">><<set $codeNum = window.bumpDigit($codeNum, 3, 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>></div><div id="codeDisplay" style="margin:8px 0;"><span id="codeValue"><<= window.updateCodeDisplay()>></span></div><div class="digit-row"><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 0, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 1, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 2, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>><<button "▼">><<set $codeNum = window.bumpDigit($codeNum, 3, -1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</button>></div></div><div style="text-align: center; margin-top: 10px;">[[HYPERSPACE JUMP->check_answert2]]<br>[[Back|Ship]]</div><<script>>(function(){ if (window._unbindCodeKeys) window._unbindCodeKeys(); window._codeKeyHandler = function(e) { const active = document.activeElement; if (active && active.tagName && active.tagName.toLowerCase() === "input") return; const k = (e.key||"").toLowerCase(); let d = 0; switch (k) { case "arrowup": e.preventDefault(); d = 1; break; case "arrowdown": e.preventDefault(); d = -1; break; case "arrowright": e.preventDefault(); d = 10; break; case "arrowleft": e.preventDefault(); d = -10; break; case "enter": e.preventDefault(); Engine.play("check_answert2"); return; default: return; } if (d !== 0) { const n = Math.max(0, Math.min(9999, (State.variables.codeNum|0) + d)); State.variables.codeNum = n; const el = document.getElementById("codeValue"); if (el && typeof window.updateCodeDisplay === 'function') { el.innerHTML = window.updateCodeDisplay(); } } }; document.addEventListener("keydown", window._codeKeyHandler, {passive:false, capture:true}); if (Story && Story.on) { Story.on("passage:before", function(){ if (window._unbindCodeKeys) window._unbindCodeKeys(); }); } })();<</script>><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = 0.4>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\UI3A.png" />
<div class="coord-wrap">
<<textbox "$answer" "">><div style="margin-top: 10px;">
<div style="text-align:center;">[[HYPERSPACE JUMP->check_man2]]</div></div><div style="text-align:center;">[[Back|Ship]]</div>
<<set $codeHistory to $codeHistory or []>>
<<script>>
(function () {
/* Takarítsuk le a régi névterezett handlereket, ha maradtak */
if (window.jQuery) {
$(document).off('.coordNS');
}
/* Ezen a passage-on, amikor megjelenik, kössük a mezőt és a billentyűket */
$(document).one(':passagedisplay.coordNS', function (ev) {
var $root = $(ev.content);
var $input = $root.find('.macro-textbox').first(); // <<textbox>> inputja
if ($input.length === 0) return;
function onlyDigits(s){ return (s||'').replace(/\D/g,''); }
function norm4(s){
var raw = onlyDigits(s).slice(0,4);
if (!raw) return '';
var n = Math.min(9999, parseInt(raw,10) || 0);
return String(n).padStart(4,'0');
}
function refreshVisited(){
var norm = norm4($input.val());
var seen = !!norm && State.variables.codeHistory && State.variables.codeHistory.includes(norm);
$input.toggleClass('visited', seen);
}
/* Induló érték tisztítása + fókusz */
var start = onlyDigits(State.variables.answer || '').slice(0,4);
$input.val(start);
setTimeout(function(){
$input.focus();
var el = $input.get(0);
if (el && el.setSelectionRange) el.setSelectionRange(start.length, start.length);
}, 0);
/* Mezőn belüli beírás: csak szám, max 4; state sync + visited */
$input.on('input.coordNS', function(){
var el = this;
var digits = onlyDigits(el.value).slice(0,4);
if (digits !== el.value) {
el.value = digits;
if (el.setSelectionRange) el.setSelectionRange(digits.length, digits.length);
}
State.variables.answer = el.value;
refreshVisited();
});
/* Enter a mezőben → check_answerM */
$input.on('keydown.coordNS', function(e){
if (e.key === 'Enter' || e.keyCode === 13) {
e.preventDefault();
State.variables.answer = this.value;
Engine.play('check_man2');
}
});
/* Globális: ha NEM inputon vagy, 0–9 → írjon a mezőbe; Enter → ugrás */
$(document).on('keydown.coordNS', function(e){
var $t = $(e.target);
if ($t.is('input, textarea, [contenteditable]')) return;
var isDigit = (/^[0-9]$/).test(e.key) || (/^Numpad[0-9]$/).test(e.code || '');
if (isDigit) {
e.preventDefault();
var digit = /^[0-9]$/.test(e.key) ? e.key : (e.code || '').replace('Numpad','');
var curr = onlyDigits($input.val());
if (curr.length < 4) {
var next = (curr + digit).slice(0,4);
$input.val(next).trigger('input').focus();
} else {
$input.focus();
}
return;
}
if (e.key === 'Enter' || e.keyCode === 13) {
e.preventDefault();
State.variables.answer = $input.val();
Engine.play('check_man2');
}
});
/* Induló visited állapot */
refreshVisited();
/* Következő passage-nál mindent leveszünk (ne „szivárogjon”) */
$(document).one(':passagedisplay.coordNS', function(){
$(document).off('.coordNS');
$input.off('.coordNS');
});
});
})();
<</script>>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = 0.4>><</if>><<run setup.clickSound.play().catch(()=>{})>> <img src="IMG\1\cargo.png" />
<div style="text-align: center;">Here you store everything you’ll need on your journey or the things you’ve found along the way. Whether they’re <n1>useful, valuable, or simply things you like.</n1></div> <div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<<if $pics > 0>><a data-passage="paint" class="link-internal link-image">
<img src="IMG\1\but1.png" alt="paint" style="width: 200px;">
</a><</if>>
<<if $sketch1 is true>><a data-passage="comi" class="link-internal link-image">
<img src="IMG\1\but2.png" alt="comi" style="width: 200px;">
</a><</if>>
<<if $pframes > 0>><a data-passage="pframes" class="link-internal link-image">
<img src="IMG\1\but3.png" alt="pframes" style="width: 200px;">
</a><</if>>
<a data-passage="item" class="link-internal link-image">
<img src="IMG\1\but4.png" alt="item" style="width: 200px;">
</a>
</div>
<div style="text-align: center;">[[Back|Ship]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG\1\paint.png" />
In this part of the cargo bay, you <n1>store the paintings you’ve found in space.</n1> Each is the work of an unknown artist, so you don’t know what they might be worth. For now, you’ve decided to keep them.
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<<if $pics > 0>><a data-passage="paintbase" class="link-internal link-image">
<img src="IMG\1\paintbut1.png" alt="paintbase" style="width: 200px;">
</a><</if>>
<<if $hallow is true>><a data-passage="paintcur" class="link-internal link-image">
<img src="IMG\1\paintbut2.png" alt="paintcur" style="width: 200px;">
</a><</if>>
</div>
<div style="text-align: center;">[[Back|Ship]]</div>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\frame2.png" />
In this part of the cargo bay, you <n1>store the Parallax Frames you’ve collected from space.</n1> Each frame contains not just a single painting, but two or more images bound together - moments of the same motion frozen in different phases. Their creators remain unknown, and so does their true value. For now, you’ve decided to keep them.<div style="display:flex; justify-content:center; gap:10px; margin-top:10px; flex-wrap:wrap;">
<<if $pframes > 0>> <a data-passage="PF1" class="link-internal link-image">
<img src="IMG/1/PF1.png" alt="PF1" style="width:180px;">
</a><</if>>
<<if $pframes > 1>> <a data-passage="PF2" class="link-internal link-image">
<img src="IMG/1/PF2.png" alt="PF2" style="width:180px;">
</a><</if>>
<<if $pmframes is true>> <a data-passage="PF3" class="link-internal link-image">
<img src="IMG/1/PF3.png" alt="PF3" style="width:180px;">
</a><</if>>
<<if $casframes is true>> <a data-passage="PF4" class="link-internal link-image">
<img src="IMG/1/PF4.png" alt="PF4" style="width:180px;">
</a><</if>>
<<if $nurseframes is true>> <a data-passage="PF5" class="link-internal link-image">
<img src="IMG/1/PF5.png" alt="PF5" style="width:180px;">
</a><</if>>
</div>
<div style="text-align: center;">[[Back|Cargo]]</div>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0101.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0101 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+17 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Estimated 8–12 k dalmatian-like canids in ~101 packs; semi-nomadic, non-technological</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A glossy white world marked by black patch “continents,” resembling a giant <n1>dalmatian coat</n1>. A thin bone-shaped ring orbits the planet, while <n1>paw-print cyclones</n1> drift across its skies.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0101">>
<<if setup.barkSound is undefined>>
<<run setup.barkSound = new Audio("music/bark.mp3")>>
<<run setup.barkSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.barkSound.play().catch(()=>{})>><img src="IMG\1\0102.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0102 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+14 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Around five species forming a small trading community</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A compact <n1>dwarf planet</n1> serving as a bustling <n1>commercial hub</n1>. Starfarers from many worlds stop here to restock and enjoy its famous refreshments.</span></div>
<div style="text-align: center;"> <a data-passage="0102a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0102">>
<<if setup.shopSound is undefined>>
<<run setup.shopSound = new Audio("music/shop.mp3")>>
<<run setup.shopSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.shopSound.play().catch(()=>{})>>
<<set $b102 to true>><<if $pics9 is true>><div class="hover-image-wrapper"><img src="IMG/1/102art.png" class="main-image" alt="comics"><a data-passage="102art" class="hover-link link-internal link-image"><img src="IMG/1/102arta.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\0102a.png" /><</if>>
<<if $shaker is true>>A friendly face and familiar flavors greet you. A thriving business, built upon a mysterious recipe hidden deep within – the very key to its success. Truly, an intriguing galactic venture.
<div style="text-align: center;"><<if $gorthan1 is true>> [[Deliver the requested creature]] <<if $sellcowgirl is true>><<goto "sellcowgirl">><</if>><</if>>
[[Back|Bridge]]</div>
<<else>>Yielding to curiosity, you step closer to the counter. <n1>The foamy drink before you ripples gently,</n1> its scent cool and sweet - utterly unfamiliar compared to anything found in the Zenthari worlds. The vendor’s horns curve upward in an elegant arc, his form radiating strength yet softened by a calm, welcoming presence. In his eyes shines curiosity - your species is unknown to him, which is hardly surprising given how far you have traveled. Yet you recognize him and his kind. The <n1>Taurids</n1> are simple but hospitable beings, said to be capable of making a home anywhere, whether on a dusty moon or a tiny dwarf planet. Your exchange flows easily, carried by mutual curiosity. He answers your questions freely and is just as eager to learn of your world as you are intrigued by his. At last, with a warm smile, <n1>he offers to show you his farm,</n1>where the secret ingredients of these refreshing, foamy drinks are born. Now the choice is yours: accept his invitation and [[explore this curious place]], or [[continue on your journey.|Bridge]]<</if>>
<<if setup.shoperSound is undefined>>
<<run setup.shoperSound = new Audio("music/shoper.mp3")>>
<<run setup.shoperSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.shoperSound.play().catch(()=>{})>>
<img src="IMG\1\0102b.png" />
You head toward the barn. You do not enter yet, but already the steady, mechanical rhythm of machines echoes from within. As the doors slowly open, the sight unfolds before you: rows of milking devices working with cold precision.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\milking.mp4" type="video/mp4">
</video>
@@
Strange beings are harnessed to the machines - <n1>hybrid creatures gathered from countless corners of the galaxy.</n1> They provide the milk from which the curious, frothy drinks are born. Some give it freely, with joy and willingness, while others languish in captivity, forced into service. This, then, is the secret ingredient - the closely guarded essence revealed to you by the vendor. You are about to leave, convinced you’ve already seen everything worth your time. But <n1>the vendor holds you back for just a moment</n1> longer. He has a [[business proposal]] for you… if you’re interested.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $shaker to true>><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|0102]]</div>
<<set $pics +=1>>
<<set $pics9 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0103.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0103 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+42 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A silent <n1>desert-like sphere</n1> covered in ochre plains and cracked ground. No life or water remains, yet faint energy traces hint at past extraction - or something still hidden below.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0103">><img src="IMG\1\0104.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0104 </span>
<b>TEMPERATURE:</b> <span style="color:#fff;">N/A</span>
<b>POPULATION:</b> <span style="color:#fff;">Mixed – various intelligent species from across the galaxy</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A vast orbital city sealed within a protective dome. Diverse life thrives inside, while the outer sectors are known to be ideal zones for humanoid capture operations.</span></div>
<<if $human17 is true>><div style="text-align: center;">[[Transmitting docking request|0104a]]</div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0104">><img src="IMG\1\0104a.png" />
The radar pulses, marking two lifeforms - most likely humanoids. They linger on the city’s edge, isolated, with no other signals nearby. <n1>Perfect. No witnesses. No panic.</n1> The ideal moment to strike. You move closer, step by step, until you can almost feel their presence. Focusing your will, you prepare to unleash your mind control. Yet… nothing happens. Something blocks your ability. A cold realization grips you - this city shouldn’t possess technology advanced enough to resist you. Then, one of the figures laughs, breaking the silence. <n1>- “I knew you wouldn’t resist such an opportunity...”</n1> A sudden twist - <n1>this is no coincidence. It’s a trap.</n1>
<img src="IMG\1\0104b.png" />
The two humanoids reveal themselves. They are no ordinary citizens of this city, but warriors - outsiders, not born of these streets. During your journeys <n1>you once passed through their homeworld, where you subdued their sibling.</n1> You do not remember this, of course you never keep track of your humanoids. But they remember. And now, they have come for <n1>vengeance.</n1> They followed the trace of your ship and finally lured you here. Their trap was simple yet effective: using themselves as bait, drawing you away from the crowded bustle of the city, knowing full well you would strike at such an opportunity. Now they stand before you with unwavering confidence, weapons in hand, convinced that numbers are on their side. Yet you know - their advantage is only temporary.
<img src="IMG\1\0104c.png" />
With a single press of a button, two beams of light descended. Their advantage vanished the moment the <n1>two werewolves</n1> appeared behind you. And now, there was no turning back for them either. [[The battle had begun.]]
<<set $human17 to false>>
<<if setup.batle1Sound is undefined>><<run setup.batle1Sound = new Audio("music/batle1.mp3")>><<run setup.batle1Sound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.batle1Sound.play().catch(()=>{})>><img src="IMG\1\0104d.png" />
<div style="text-align: center;">The blade of the sword and the werewolf’s claw glint in the city lights. In the blink of an eye, the battle begins.<n1>The sword strikes swiftly, the claws rend with tearing strength.</n1></div><<set $boost_value = 20>><<set $boost_intervalID = 0>><<set $boost_gameOver = false>><div id="sliderWrap_boost">
<div id="sliderDisplay_boost">
<div id="sliderFill_boost"></div>
<img id="sliderIcon_boost" src="IMG/1/wg.png" alt="icon">
</div>
<div style="text-align: center;"><img src="IMG\1\spacek.png" /></div>
</div>
<style>
#sliderWrap_boost { max-width: 866px; margin: 0 auto 12px auto; }
#sliderDisplay_boost {
position: relative; width: 100%; height: 28px;
background: #121019; border: 1px solid #2b2238; border-radius: 6px; overflow: hidden;
}
#sliderFill_boost {
position: absolute; inset: 0 auto 0 0; width: 0%;
background: #0e0818; /* replaced when color is sampled from the icon */
transition: width .1s linear, background .25s ease;
}
#sliderIcon_boost {
position: absolute; top: 50%; transform: translate(-50%, -50%);
left: 0%; height: 24px; width: auto; pointer-events: none;
filter: drop-shadow(0 0 4px rgba(0,0,0,.85));
}
#tapHint_boost { font-size: .9em; opacity: .75; margin: 6px 0 10px; }
#sliderDisplay_boost {
position: relative;
width: 100%;
height: 40px; /* pl. 40px vastag bar */
background: #121019;
border: 1px solid #2b2238;
border-radius: 6px;
overflow: visible; /* FONTOS! – engedi, hogy az ikon kilógjon */
}
/* A kitöltés réteg (a bar belseje) */
#sliderFill_boost {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 0%;
background: #0e0818;
border-radius: 5px 0 0 5px;
transition: width .1s linear, background .25s ease;
}
/* Az ikon fix méretben, nem a bar magasságához igazodva */
#sliderIcon_boost {
position: absolute;
top: 50%;
transform: translate(-50%, -50%); /* középre igazítja függőlegesen */
left: 0%;
width: 128px; /* fix ikonméret */
height: 128px;
pointer-events: none;
filter: drop-shadow(0 0 4px rgba(0,0,0,.85));
}
</style>
<!-- hidden duplicate of the icon only for color sampling -->
<img id="colorSampler_boost" src="IMG/1/wg.png" alt="sampler" style="display:none;"/>
<<script>>
(function () {
const clamp = (x,min,max)=>Math.max(min,Math.min(max,x));
const pct = v => clamp((v/50)*100, 0, 100);
// ---- egyedi azonosítók / változók ehhez a passage-hoz ----
const WRAP_ID = "sliderWrap_boost";
const ROOT_ID = "sliderDisplay_boost";
const FILL_ID = "sliderFill_boost";
const ICON_ID = "sliderIcon_boost";
const SAMP_ID = "colorSampler_boost";
const V_VAR = "$boost_value";
const ID_VAR = "$boost_intervalID";
const GO_VAR = "$boost_gameOver";
function inScope(){ return !!document.getElementById(ROOT_ID); }
function setBarFromIcon(imgEl){
try{
const S=64, c=document.createElement('canvas'); c.width=S; c.height=S;
const ctx=c.getContext('2d',{willReadFrequently:true});
ctx.drawImage(imgEl,0,0,S,S);
const {data}=ctx.getImageData(0,0,S,S);
let r=0,g=0,b=0,n=S*S;
for(let i=0;i<data.length;i+=4){ r+=data[i]; g+=data[i+1]; b+=data[i+2]; }
r=Math.round(r/n); g=Math.round(g/n); b=Math.round(b/n);
const boost=c=>clamp(Math.round(c*1.2+12),0,255);
const r2=boost(r), g2=boost(g), b2=boost(b);
const fill=document.getElementById(FILL_ID);
if(fill){
// FIX: sablonliterál a CSS-hez
fill.style.background =
`linear-gradient(90deg, rgba(${r},${g},${b},0.9) 0%, rgba(${r2},${g2},${b2},0.95) 100%)`;
}
}catch(e){/* fall back to default color */}
}
function render(){
if(!inScope()) return;
const v=State.getVar(V_VAR);
const p=pct(v);
const fill=document.getElementById(FILL_ID);
const icon=document.getElementById(ICON_ID);
if(fill) fill.style.width = p + "%";
if(icon) icon.style.left = p + "%";
}
function clearTick(){
const id=State.getVar(ID_VAR);
if(id){ clearInterval(id); State.setVar(ID_VAR,0); }
}
function endGame(pass){
State.setVar(GO_VAR, true);
clearTick();
Engine.play(pass);
}
function startTick(){
clearTick();
const id=setInterval(()=>{
if(State.getVar(GO_VAR) || !inScope()){ clearTick(); return; }
let v=State.getVar(V_VAR)-4;
v=Math.max(0,v); State.setVar(V_VAR,v); render();
if(v<=0){ endGame("wgloss"); }
},500);
State.setVar(ID_VAR,id);
}
function boost(){
if(State.getVar(GO_VAR) || !inScope()) return;
let v=State.getVar(V_VAR)+2;
if(v>=50){ State.setVar(V_VAR,50); render(); endGame("wgwin"); return; }
State.setVar(V_VAR,v); render();
}
function onKey(e){ if(e.code==="Space"){ e.preventDefault(); boost(); } }
function onPointer(e){
if(e.type!=="pointerdown") return;
const bar=document.getElementById(ROOT_ID);
if(bar && e.target.closest(`#${ROOT_ID}`)) boost();
}
// egyszeri globális bind ehhez a játékhoz
if(!window._boostGameBound){
document.addEventListener('keydown', onKey, {passive:false});
document.addEventListener('pointerdown', onPointer, {passive:true});
if (Story && Story.on){
Story.on('passage:before', () => { clearTick(); State.setVar(GO_VAR, true); });
}
window._boostGameBound = true;
}
// szín a samplerből
const sampler=document.getElementById(SAMP_ID);
if (sampler && sampler.complete) setBarFromIcon(sampler);
else if (sampler) sampler.onload=()=>setBarFromIcon(sampler);
// go
setTimeout(()=>{ render(); startTick(); },10);
})();
<</script>>
<<if setup.batleSound is undefined>><<run setup.batleSound = new Audio("music/batle.mp3")>><<run setup.batleSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.batleSound.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\wgwin1.mp4" type="video/mp4">
</video>
@@
First, one warrior loses her weapon, then a piece of her armor. Your werewolf immediately pounces on its prey, trapping her body within its claws - there is no escape. <n2>And just as before, it begins to play with its victim.</n2> This is its rightful reward.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\wgwin2.mp4" type="video/mp4">
</video>
@@
The savage game of <n2>‘Beast and Huntress’</n2> shocks the other warrior. Seeing what happens to her sister unsettles her, breaks her focus, and she falters. A single mistake was all it took for her to <n2>share her sister’s fate.</n2> You stand there, satisfied, allowing your beasts to amuse themselves for a while. And when they are finished, you [[collect the weary humanoids.|Bridge]]
<<set $human += 2>><img src="IMG\1\wgloss.png" />
First one, then the other werewolf falls. <n2>They are defeated.</n2> Three remain in the street. True, they are exhausted, yet still superior - in strength and in numbers. Your <n2>mind-control ability is blocked</n2> by something, leaving you no chance to fight. But escape is still possible. With a single press of a button, the beam lifts you into the sky, leaving behind your attackers and [[the slain werewolves.|Bridge]]
<img src="IMG\1\0105.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d0a36b;"> 0105 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−118 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Uninhabited – no biosignatures detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">An airless, cratered world marked by ancient impacts and fractured terrain.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0105">>
<<if $hallow1>>
<div style="position:fixed; right:20px; bottom:120px; z-index:9999;">
<a href="javascript:void(0);" onclick="SugarCube.Engine.play('hallow1');">
<img src="IMG/pumpkin.png" alt="pumpkin" style="max-width:120px;">
</a>
</div>
<</if>><img src="IMG\1\0106c.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d9b787;"> 0106 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−47 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None – single occupant deceased</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A lone, derelict capsule drifts in the void. Its hull bears the scars of time and silence.</span></div>
<div style="text-align: center;">[[Open the space capsule|0106a]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0106">><<if $frame1 is true>><div class="hover-image-wrapper"><img src="IMG/1/0106.png" class="main-image" alt="comics"><a data-passage="0106a0" class="hover-link link-internal link-image"><img src="IMG/1/0106a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01060.png" /><</if>>
Inside, nothing awaits you. Only the lonely remains of a single passenger - bones, a dust-covered spacesuit, and a ruined control panel. That is all. Drifting endlessly through the void of space.
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG\1\frame1.png" />
What you’ve found may at first resemble the earlier paintings, but it is more than that – it is a <n1>Parallax Frames.</n1> While it does contain paintings, it’s not just a single one: it holds two or even more images, tightly bound together, as if capturing the very moments of a motion. <n1>One is the beginning, the other the end.</n1>
<div style="text-align: center;">[[Back|0106a]]</div>
<<set $pframes +=1>>
<<set $frame1 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><div id="pf1" class="pf-wrap"> <div class="pf-stage"><img class="pf-a" src="IMG/1/nunframe1.png" alt="frame A"><img class="pf-b" src="IMG/1/nunframe2.png" alt="frame B"></div>
<div style="text-align: center;"><n3>The Blessed Lips</n3> - unknown painter <n1>(Stellar Date 47.218Δ)</n1></div><div class="pf-slider-wrap"><input class="pf-slider" type="range" min="0" max="100" value="0" aria-label="Parallax mixer"></div></div>
<div style="text-align: center;">[[Back|pframes]]</div>
<style>
/* Konténer */
.pf{max-width:866px;margin:0 auto 18px;}
/* Képszínpad: grid, hogy a magasságot a kép adja (nem esik össze) */
.pf-stage{
display:grid;
position:relative;
width:100%;
overflow:hidden;
border-radius:10px;
/* Opcionális: fix képarány
aspect-ratio:16/9; */
}
/* Képek: egymásra rétegezve, teljes szélesség */
.pf-stage img{
grid-area:1/1;
width:100%;
height:auto; /* megőrzi az eredeti arányt */
object-fit:cover; /* ha aspect-ratio-t használsz, kitölti torzítás nélkül */
user-select:none;
pointer-events:none;
}
/* Rétegek átúsztatása */
.pf-a{opacity:1; transition:opacity 120ms linear;}
.pf-b{opacity:0; transition:opacity 120ms linear;}
/* Csúszka – középre zárva a kép alatt */
.pf-slider-wrap{display:flex;justify-content:center;margin-top:12px;}
.pf-slider{
width:min(520px,90%);
height:10px;
border-radius:999px;
appearance:none;
-webkit-appearance:none;
outline:none;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
box-shadow:0 0 0 1px rgba(0,0,0,.35) inset, 0 2px 10px rgba(0,0,0,.25);
}
/* --- WebKit (Chrome/Edge/Safari) --- */
.pf-slider::-webkit-slider-runnable-track{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
}
.pf-slider::-webkit-slider-thumb{
-webkit-appearance:none;
width:22px; height:22px; border-radius:50%;
background:#0fe;
border:2px solid rgba(255,255,255,.85);
box-shadow:0 0 0 3px rgba(15,238,255,.25), 0 0 12px rgba(120,70,255,.55);
cursor:pointer;
margin-top:-6px; /* 10px magas track közepére igazít */
}
.pf-slider:active::-webkit-slider-thumb{transform:scale(.96);}
/* --- Firefox --- */
.pf-slider::-moz-range-track{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
}
.pf-slider::-moz-range-progress{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%); /* eltünteti a „kék négyzetet” */
}
.pf-slider::-moz-range-thumb{
width:22px; height:22px; border-radius:50%;
background:#0fe;
border:2px solid rgba(255,255,255,.85);
box-shadow:0 0 0 3px rgba(15,238,255,.25), 0 0 12px rgba(120,70,255,.55);
cursor:pointer;
}
/* Fókuszjelzés billentyűzetnél */
.pf-slider:focus-visible{
box-shadow:0 0 0 3px rgba(24,195,224,.35);
transition:box-shadow .15s;
}
</style>
<<script>>
(function(){
// csak akkor inicializál, amikor a passage tényleg megjelent
$(document).one(':passagedisplay.pf1', function (ev) {
var root = document.getElementById('pf1');
if(!root) return;
var slider = root.querySelector('.pf-slider');
var a = root.querySelector('.pf-a');
var b = root.querySelector('.pf-b');
function update(){
var t = Number(slider.value)/100; // 0..1
a.style.opacity = 1 - t;
b.style.opacity = t;
}
slider.addEventListener('input', update);
slider.addEventListener('change', update);
update();
// ha ismered a képarányt, állítsd (pl. 16/9 vagy 4/3)
// root.querySelector('.pf-stage').style.aspectRatio = '16/9';
});
})();
<</script>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\hid.png" /><div style="text-align: center;"> Before you lies the <n1>Galactic Map!</n1> The gateway to the universe, where every adventure begins. Here you can enter the coordinates that will determine the course of your journey. <n1>Decide which method suits you best.</n1> </div><div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;"><a data-passage="UI1a" class="link-internal link-image">
<img src="IMG/1/UI1.png" alt="UI1a" style="width: 250px;">
</a><a data-passage="UI2a" class="link-internal link-image">
<img src="IMG/1/UI2.png" alt="UI2a" style="width: 250px;">
</a><a data-passage="UI3a" class="link-internal link-image">
<img src="IMG/1/UI3.png" alt="UI3a" style="width: 250px;"></a>
</div>
<<set $tutorial to false>>
<<set $tutbridge0 to false>>
<<set $tutor to true>>
<<set $codeNum to 0>><img src="IMG\UI2A.png" />
Your chosen interface: You can enter the coordinates into the Galactic Map interface by using the <n1>arrow keys</n1> on your keyboard. <n1>Up / Down</n1> will increase or decrease the value by <n1>1</n1>, while <n1>Left / Right</n1> will adjust it by <n1>10</n1>. Hold the keys down to let it spin freely. When you're done, <n1>click Launch or press ENTER.</n1>
<div style="text-align: center;">If this interface suits you, we can move forward. If not, you still have the chance to choose another one:
[[This one is fine|Ship]]
[[Choose another|Settings2]]
</div>
<<set $wasd to false>>
<<set $arrow to true>>
<<set $manual to false>>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\UI1A.png" />
Your chosen interface: You can enter the coordinates into the Galactic Map interface by using the <n1>WASD keys</n1> on your keyboard. <n1>W / S</n1> will increase or decrease the value by <n1>1</n1>, while <n1>A / D</n1> will adjust it by <n1>10</n1>. Hold the keys down to let it spin freely. When you're done, <n1>click Launch or hit SPACE.</n1>
<div style="text-align: center;">If this interface suits you, we can move forward. If not, you still have the chance to choose another one:
[[This one is fine|Ship]]
[[Choose another|Settings2]]
</div>
<<set $wasd to true>>
<<set $arrow to false>>
<<set $manual to false>>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG\UI3A.png" />
You can enter the coordinates into the Galactic Map interface by using your keyboard. The coordinates must be entered manually and range from <n1>0000 to 9999</n1>. However, it is not always necessary to type all four digits. For example, if your destination is planet <n1>0099</n1>, simply enter <n1>99</n1> and the system will automatically add the leading zeros. When you're done, <n1>click Launch or press ENTER.</n1>
<div style="text-align: center;">If this interface suits you, we can move forward. If not, you still have the chance to choose another one:
[[This one is fine|Ship]]
[[Choose another|Settings2]]
</div>
<<set $wasd to false>>
<<set $arrow to false>>
<<set $manual to true>>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\1\0107.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0107 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−13 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">No population detected – single massive bio-organic entity present</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A former orbital station consumed by a spreading fleshy mass. The organism fuses metal and circuitry, turning the structure into a grotesque hybrid of life and machine.</span></div>
<div style="text-align: center;">[[Step inside the vessel|0107a]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0107">><img src="IMG\1\0107a.png" />
The biomass has spread throughout the entire ship. It has devoured every trace of organic matter, and now it is slowly consuming even the vessel’s solid metal structures. At first glance, it appears to be nothing more than a faceless, limbless, organless mass. Yet it is not lifeless. Far from it - <n3>it is very much alive.</n3> A single vast organism. It remains motionless until you draw near. Then, suddenly, the mass shifts, tendrils rising to lash out and seize you. A strange and alien being, unlike anything you have encountered before. And that is precisely why this ship is the perfect ground for <n3>new experimentation</n3> - provided you are willing to make <n3>the sacrifice</n3> it demands.
<div style="text-align: center;"> <<if $human >= 1>> [[Use a humanoid for the experiment]] <<else>> <n2>Get a humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.mass is undefined>><<run setup.mass = new Audio("music/mass.mp3")>><<run setup.mass.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.mass.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\bekeb.mp4" type="video/mp4">
</video>
@@
As expected, the moment a humanoid was cast into the mass, the “creature” reacted instantly. Tendrils surged forth, beginning to envelop the subject’s body. At first, you believed it to be simple consumption - assimilation of flesh and bone into the biomass. Yet it did not happen the way you imagined. Almost immediately, it became clear: <n3>the organism did not regard the humanoid as mere sustenance.</n3>
<div style="border: 2px solid #7a1c1c; padding: 10px; color: #7a1c1c; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left;">
<b>SUBJECT:</b> Humanoid + Biomass interaction
<b>RESULT:</b> The biomass did not consume the humanoid. Instead, it coiled tightly around the subject, preventing any possibility of escape. Current analysis suggests that the humanoid will soon become <n3>a permanent extension of the biomass organism.</n3> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human += 2>><<if $pics10 is true>><div class="hover-image-wrapper"><img src="IMG/1/0108.png" class="main-image" alt="comics"><a data-passage="0108a" class="hover-link link-internal link-image"><img src="IMG/1/0108a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01080.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0108 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−87 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Its frozen surface forms an eerie pattern — from certain angles, the ridges align into the shape of a vast, emotionless face staring back.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0108">>
<img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics10 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0109.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0109 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+666 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;"><n3>VOID FRACTURE.</n3> A rift in reality itself, possibly leading to an unknown region or another dimension entirely.</span></div>
<<if $male7 is true>><div style="text-align: center;"> [[Enter the Rift]]</div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0109">>
<div style="text-align: center;"><img id="rfog_img" src="IMG/MG/2/1.png" alt="" style="max-width:100%;height:auto;margin-bottom:12px;">
At first, it seems that this void rift leads into <n2>nothingness.</n2> Red mist and nothing more. <n2>However, it might still be worth examining more closely.</n2> Perhaps it hides something valuable.
<input id="rfog_slider" type="range" min="1" max="50" value="1" step="1"
style="width: 60%; appearance: none; height: 8px; background: #000000; border-radius: 8px; outline: none; cursor: pointer; margin: 0; padding: 0;"></div>
<div style="text-align: center;">[[Back|0109]]</div>
<<script>>
(function redFog_isolated(){
// ----- Lokális, névterezett változók (nem szennyezik a globált) -----
const RFOG_EVENT_NS = '.rfog38'; // jQuery esemény-névtér
const rfogImgBase = 'IMG/MG/2/'; // képek elérési útja
const rfogTargetValue = 38; // célérték
const rfogHoldMs = 1000; // mennyit kell tartani (ms)
const rfogNextPassage = 'male7'; // cél passage
let rfogTimeout = null; // 38-on tartás időzítője
const thisPassage = State.passage; // melyik passage-ban indult
// ----- Segédfüggvények -----
function rfogCleanup() {
if (rfogTimeout) { clearTimeout(rfogTimeout); rfogTimeout = null; }
// Eseménykezelők levétele ennél a névtérnél
$(document).off(RFOG_EVENT_NS);
}
function rfogUpdate(val) {
const v = Number(val);
const img = document.getElementById('rfog_img');
if (img) { img.src = rfogImgBase + v + '.png'; }
if (v === rfogTargetValue) {
// Indíts egyszeri időzítőt, ha még nincs
if (!rfogTimeout) {
rfogTimeout = setTimeout(() => {
// Biztonsági ellenőrzések: még itt vagyunk? még 38?
if (State.passage === thisPassage) {
const slider = document.getElementById('rfog_slider');
if (slider && Number(slider.value) === rfogTargetValue) {
rfogCleanup();
Engine.play(rfogNextPassage);
}
}
}, rfogHoldMs);
}
} else {
// Elmozdult a 38-ról → töröljük a futó időzítőt
if (rfogTimeout) { clearTimeout(rfogTimeout); rfogTimeout = null; }
}
}
// ----- Feliratkozás a passage-életciklusra -----
$(document).one(':passagedisplay' + RFOG_EVENT_NS, function () {
const slider = document.getElementById('rfog_slider');
if (!slider) return;
// Kezdőkép frissítése a kezdeti értékből
rfogUpdate(slider.value);
// Élő frissítés (inline oninput nélkül, hogy ne ütközzön semmivel)
slider.addEventListener('input', (e) => rfogUpdate(e.target.value), { passive: true });
});
// Ha elhagyjuk a passage-t, minden leáll
$(document).one(':passageend' + RFOG_EVENT_NS, rfogCleanup);
})();
<</script>>
<<if setup.mass is undefined>><<run setup.void = new Audio("music/void.mp3")>><<run setup.void.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.void.play().catch(()=>{})>><img src="IMG\1\0109a.png" />
The radar picked up something - an entire floating island in the middle of the red mist. Two entities detected. One: an unknown, unclassifiable being. The other… a humanoid? What could a human be doing here, in such a place, at the edge of the galaxy? That alone was reason enough to draw closer and investigate the island. What you see does not surprise you, but it gives you answers. You can feel the radiating life-force of the unknown entity - <n2>something vast, something powerful.</n2> Yet this power does not reveal itself through brute strength. Instead, it manifests in its aura: <n2>cold, oppressive, and dark.</n2>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\riddem.mp4" type="video/mp4">
</video>
@@
Its “game” with the humanoid is interrupted by your arrival. Yet it does not fight for the humanoid - <n2>it abandons it instead.</n2> You draw closer, guiding your vessel down until you land on the island. Approaching the humanoid, you attempt the familiar method: slipping into its mind, bending its will with psychic control, urging it to follow you back to the ship - where its future home, a cell, awaits. But you cannot. The <n2>humanoid’s mind is already lost,</n2> locked in a trance-like state.
<img src="IMG\1\0109b.png" />
The creature’s energy has settled upon his mind, a corrupt mist shrouding it completely. Could this dimension be the very source of the demonic force spreading across the galaxy - <n2>the corruption behind the rifts?</n2> The answers remain unclear. The humanoid cannot be guided willingly, and so you must take him by force. For your own entities, this presents no difficulty. Yet even within the confines of your ship, <n2>the power that holds his mind does not fade</n2> - it continues its grip, a relentless influence that refuses to release him. His mind is only freed once you [[leave the Rift.|Bridge]]
<<set $male += 1>> <<set $male7 to false>><<if $pics17 is true>><img src="IMG\1\0083.png" />
As you fly through the asteroid field, you notice a <n3>small ship</n3> quietly moving, hiding behind the meteors. It conceals itself from the world. The type of vessel is not unfamiliar to you, so you know exactly what it is carrying - <n3>a work of art.</n3> A valuable galactic painting. Perhaps it’s worth taking the time to acquire it.
<div style="text-align: center;">[[Shoot down the spaceship|Ast1]]</div>
<<else>><img src="IMG\1\00830.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0083 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−156 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A dense and unstable asteroid field drifting across the sector. Constant collisions and shifting debris make navigation highly dangerous. No biosignatures detected. Mining potential remains uncertain due to extreme instability.</span></div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0110">>
<div id="gameArea">
<img id="ship" src="IMG\1\mgship.png" />
</div> <img src="IMG\1\instruk.png" />
<style>
#gameArea {
width: 866px;
height: 500px;
position: relative;
border: 2px solid white;
background: url('IMG\\1\\stars.png') repeat-y;
background-size: cover;
background-position: center;
animation: scrollBg 10s linear infinite;
overflow: hidden;
cursor: none;
}
@keyframes scrollBg {
from { background-position-y: 0; }
to { background-position-y: 1000px; }
}
#ship {
position: absolute;
bottom: 10px;
width: 80px;
height: 80px;
}
.meteor {
position: absolute;
width: 40px;
height: 40px;
top: -40px;
}
</style>
<<run setTimeout(setup.startMeteorGame, 50)>>
<<if setup.meteorSound is undefined>><<run setup.meteorSound = new Audio("music/meteor.mp3")>><<run setup.meteorSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.meteorSound.play().catch(()=>{})>><img src="IMG\1\0111.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0111 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+10 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Cannot be determined</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A world bathed in spiritual energy. Its glowing ectoplasmic oceans pulse with light as the veil between realms thins, drawing the planet toward the spectral domain.</span></div>
<div style="text-align: center;"> <a data-passage="0111a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0111">>
<<if setup.ghosti is undefined>>
<<run setup.ghosti = new Audio("music/ghost.mp3")>>
<<run setup.ghosti.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.ghosti.play().catch(()=>{})>><img src="IMG\1\0111a.png" />
On the surface lie the memories of ancient battles. Piles of weapons, thousands of skeletons covering the ground, and in the air, the scent of blood still lingers. The planet is dead, and yet not uninhabited. For here the spirits whisper in an ancient tongue: <n1>Bring Us a Soul!</n1> - their drawn-out murmur carried upon the wind. A request, the plea of the dead, which you may now choose to fulfill…
<div style="text-align: center;">[[Fulfill the request of the dead]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.tizen is undefined>>
<<run setup.tizen = new Audio("music/tizen.mp3")>>
<<run setup.tizen.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.tizen.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\soulf.mp4" type="video/mp4">
</video>
@@
With a single press, the blue beam struck the ground, bringing forth a humanoid. As the figure set foot upon the soil, the spirits began to take shape - <n1>forming bodies, encased once more in their ancient armor.</n1> Thus they welcomed your sacrifice, the soul they devoured in their own corrupted way. You stand and watch as the <n1>humanoid slowly transforms into a spirit, before vanishing into the host of spectral beings.</n1>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human -= 1>>
<img src="IMG\1\0112.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0112 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+24 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A strange planet colored like a giant fruit - green surface, soft yellow inner layers, and a dark core at its center. The resemblance is uncanny, its origin unknown.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0112">>
<img src="IMG\1\0113.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0113 </span>
<b>DESIGNATION:</b> <span style="color:#fff;"><n3>Arcanum Vault</n3></span>
<b>POPULATION:</b> <span style="color:#fff;">113 distinct lifeforms under containment</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A fortified facility impossible to breach by force. Inside lie dangerous relics, cursed artifacts, and entities too hazardous to ever be released.</span></div>
<div style="text-align: center;"><<if $smStage is 1>>[[Plan the infiltration]]<</if>>
[[Back|Bridge]]</div>
<<set $lastvisit to "0113">>
<img src="IMG\1\0113a.png" />
<n1>Arcanum Vault</n1> - This is where the cursed artifact required to summon <n1>Sadako</n1> is kept. It is here that you must gain entry.The only chance of entry is to <n1>open the loading bay gate</n1> at the rear of the facility and slip inside. To do this, however, you must breach the system and that can only be done from within. Which means you must first find a way to get a <n1>code-breaking transmitter</n1> into the building. There is only one possible entry point: a <n1>narrow ventilation shaft</n1>, sealed only by grates. Through it, perhaps, <n1>one of your creatures</n1> could be sent - fast, stealthy, and with a body slim enough to fit inside the vent.
<div style="text-align: center;"><<if $xeno is true>>[[Send a Facehugger into the vent]]<<else>><n2>You need a Facehugger ⚠️</n2><</if>>
[[Back|Bridge]]</div>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\hugger1.mp4" type="video/mp4">
</video>
@@
You found the right path, and your creature reached its destination. It emerged unexpectedly from the vent and silenced the lone guard at the back gate. <n1>No alarm is raised, and no one knows about the attack.</n1> Your codebreaker is near the gate, so nothing stands in your way of breaking it open.
<div id="slotGameSCP1">
<style>
#slotContainer {
display: flex;
justify-content: center;
gap: 40px;
margin-bottom: 20px;
}
.slotColumn {
width: 60px;
height: 60px;
font-size: 36px;
background-color: #222;
color: #fff;
font-family: monospace;
display: flex;
justify-content: center;
align-items: center;
border: 2px solid #555;
border-radius: 8px;
}
#slotMessage {
text-align: center;
font-weight: bold;
font-size: 18px;
color: white;
}
</style><div id="slotContainer">
<div class="slotColumn" id="col1">?</div>
<div class="slotColumn" id="col2">?</div>
<div class="slotColumn" id="col3">?</div>
</div>
<div id="slotMessage">Press SPACE to stop the columns</div>
</div>
<<script>>
(function () {
// --- instance-private adatok (nem szivárog ki globálba) ---
const allSymbols = ["A","B","C","D","E","F","G","H","S","C","P"];
const winningSymbols = ["A","A","A"];
let columns = [[], [], []];
let intervals = [null, null, null];
let stopIndex = 0;
let stopCount = 0;
function shuffle(arr) {
const a = arr.slice();
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
function prepareColumns() {
for (let i = 0; i < 3; i++) {
let set = shuffle(allSymbols);
set = set.filter(c => !winningSymbols.includes(c));
set.splice(5, 0, winningSymbols[i]); // A, A, A bekeverve
columns[i] = set;
}
}
function clearAllIntervals() {
intervals.forEach(id => id && clearInterval(id));
intervals = [null, null, null];
}
function startSpin() {
clearAllIntervals();
for (let i = 0; i < 3; i++) {
let index = 0;
const cell = document.getElementById("col" + (i + 1));
if (!cell) continue;
intervals[i] = setInterval(() => {
// ha közben elhagytuk a passage-t, álljunk le
if (!document.body.contains(cell)) { clearAllIntervals(); return; }
const val = columns[i][index];
cell.innerText = val;
cell.style.color = winningSymbols.includes(val) ? "#a287e6" : "#fff";
index = (index + 1) % columns[i].length;
}, 450);
}
}
function stopSpin(col) {
if (intervals[col]) clearInterval(intervals[col]);
stopCount++;
if (stopCount === 3) checkWin();
}
function checkWin() {
const vals = [1, 2, 3].map(i => (document.getElementById("col" + i)?.innerText) || "");
const success = vals[0] === "A" && vals[1] === "A" && vals[2] === "A";
const msg = document.getElementById("slotMessage");
if (!msg) return;
if (success) {
msg.innerHTML = "Success! Unlocking passage...";
msg.style.color = "white";
setTimeout(function () {
if (typeof Engine !== "undefined" && typeof Engine.play === "function") {
Engine.play("rakodo");
}
}, 1000);
} else {
msg.innerHTML = "Failure. <br>Press <strong>R</strong> to retry.";
msg.style.fontSize = "22px";
msg.style.color = "#ff4c4c";
}
}
function resetGame() {
clearAllIntervals();
columns = [[], [], []];
stopIndex = 0;
stopCount = 0;
const msg = document.getElementById("slotMessage");
if (msg) {
msg.innerText = "Press SPACE to stop the columns";
msg.style.color = "white";
msg.style.fontSize = "18px";
}
prepareColumns();
startSpin();
}
function keyHandler(e) {
// ne reagáljunk, ha beviteli mezőben áll a fókusz
const t = e.target;
if (t && (t.tagName === 'INPUT' || t.tagName === 'TEXTAREA' || t.isContentEditable)) return;
// csak akkor dolgozzunk, ha a három cella tényleg itt van
if (!document.getElementById('col1') || !document.getElementById('col2') || !document.getElementById('col3')) return;
const isSpace =
e.code === 'Space' ||
e.key === ' ' ||
e.key === 'Spacebar' ||
e.keyCode === 32;
const isR =
e.code === 'KeyR' ||
(typeof e.key === 'string' && e.key.toLowerCase() === 'r') ||
e.keyCode === 82;
if (isSpace) {
e.preventDefault(); // ne scrollozzon az oldal
e.stopPropagation(); // ne kapja el más handler
if (stopIndex < 3) {
stopSpin(stopIndex);
stopIndex++;
}
return;
}
if (isR) {
e.preventDefault();
e.stopPropagation();
resetGame();
return;
}
}
// --- AUTOMATIKUS INDÍTÁS ugyanebben a scope-ban (nincs "is not defined") ---
setTimeout(() => {
if (document.getElementById("col1") && document.getElementById("col2") && document.getElementById("col3")) {
prepareColumns();
startSpin();
}
}, 0);
// előbb vegyük le, ha esetleg már fenn van
window.removeEventListener('keydown', keyHandler);
document.removeEventListener('keydown', keyHandler, true);
// majd tegyük fel "capture" módban, hogy a böngésző scroll előtt elkapjuk
document.addEventListener('keydown', keyHandler, true);
window.addEventListener('keydown', keyHandler, true);
// takarítás, amikor elhagyjuk a passage-t
$(document).one(":passageend.slot", function () {
clearAllIntervals();
window.removeEventListener("keydown", keyHandler);
});
})();
<</script>>
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG\1\0113b.png" />
For a brief moment, you slip your ship into the facility’s airspace. Thanks to its <n1>stealth systems,</n1> you remain invisible to the radars. It is just enough time to drop the <n1>Facehugger</n1> together with the codebreaker strapped to its body, beside the structure. Silently, it begins its approach toward the ventilation shaft. To gain entry, it uses its own blood. The corrosive fluid drips onto the grates, and the acid immediately starts to dissolve the metal. The first layer of defense is broken. The <n1>Facehugger has entered the ventilation system.</n1>
<<puzzle 3 3 "IMG/csatorna.png" 480 6 "szelozo">>
Now everything depends on the <n1>Facehugger.</n1> It is up to it to reach the loading bay gate, for only from within its immediate vicinity can you begin breaching the code.<n1>You have to find or put together the right path.</n1> If you have it, wait a few moments until it arrives.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.acid is undefined>>
<<run setup.acid = new Audio("music/acid.mp3")>>
<<run setup.acid.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.acid.play().catch(()=>{})>><img src="IMG\1\rakodo.png" />
The gate opened, and your ship’s stealth systems and speed were enough to slip inside the hangar unnoticed. Fortunately, only the one humanoid still lay on the ground - the one your creature had already subdued. <n1>But you needed another.</n1> For your plan was to take control of one of the personnel working here, and through them either <n1>draw attention away</n1> or <n1>extract the cursed artifact</n1> you came for.
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<a data-passage="malelab" class="link-internal link-image">
<img src="IMG/1/malelab.png" alt="malelab" style="width: 300px;">
</a>
<a data-passage="femalelab" class="link-internal link-image">
<img src="IMG/1/femalelab.png" alt="femalelab" style="width: 300px;">
</a>
</div>
<img src="IMG\1\pancel.png" />
The mind control was successful - not complete, but strong enough to compel the humanoid toward the vault. There, however, a <n1>Krogan guard blocks your path.</n1> Fierce warriors, possessed of strength far beyond the ordinary. You have no wish to face such a foe in combat. Instead, you must rely on the humanoid under your control to help you find a way past him.
<img src="IMG\1\pancel2a.png" />
Unfortunately, this humanoid does not possess an <n1>access card</n1> and has no authorization to enter the vault. But there is something else you can exploit - <n1>its physical form.</n1> You convince her to remove part of her armor. Just enough to attract the Krogan's attention. <n1>Then everything happens as it should.</n1> The humanoid body's characteristics and its effect on other beings are now the same as in [[your previous tests.]]
<<set $smStage to 2>><img src="IMG\1\pancel.png" />
The mind control was successful - not complete, but strong enough to compel the humanoid toward the vault. There, however, a <n1>Krogan guard blocks your path.</n1> Fierce warriors, possessed of strength far beyond the ordinary. You have no wish to face such a foe in combat. Instead, you must rely on the humanoid under your control to help you find a way past him.
<img src="IMG\1\pancel2.png" />
Fortunately, your humanoid carries an <n1>access card</n1> granting passage along this route and entry to every chamber within. After inspecting the card, the guard allows your thrall to proceed, and it enters the vault. <n1>Under your influence,</n1> it searches for the cursed artifact - and you compel it further, to bring the object back to you in [[the loading hangar.]]
<<set $smStage to 2>><img src="IMG\1\vhs.png" />
Thus, the first step toward completing your mission is achieved. <n1>You have secured the cursed artifact required for Sadako’s capture.</n1> It is placed within your cargo hold, where you may study it further - and where the second phase [[may soon begin.|Bridge]]
<<set $smStage to 2>>
<<set $vhs to true>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\krogan.mp4" type="video/mp4">
</video>
@@
The krogan, by nature, will take advantage of the opportunity you offer them in a wild and violent manner. And that's exactly what you wanted, for him to surrender to the moment, so you'd have enough time to break down the gate, get inside, find the cursed object, and bring it out.
<img src="IMG\1\vhs.png" />
Thus, the first step toward completing your mission is achieved. <n1>You have secured the cursed artifact required for Sadako’s capture.</n1> It is placed within your cargo hold, where you may study it further - and where the second phase [[may soon begin.|Bridge]]
<<set $smStage to 2>>
<<set $vhs to true>><img src="IMG\1\item.png" />
In this section of the ship are stored the items and equipment you will need during <n1>your missions.</n1> These may include weapons, tools, or even rare, magical, and cursed artifacts.
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<<if $vhs is true>><a data-passage="vhs" class="link-internal link-image">
<img src="IMG\1\vhsgomb.png" alt="vhs" style="width: 200px;">
</a><</if>>
<<if $phon is true>><a data-passage="phone" class="link-internal link-image">
<img src="IMG\1\phone.png" alt="phone" style="width: 200px;">
</a><</if>>
</div>
<div style="text-align: center;">[[Back|Cargo]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG\1\vhs2.png" />
Here lies the cursed artifact - an ancient piece of technology once considered the pinnacle of its age: <n1>a so-called VHS tape.</n1> It contains the curse itself, a recording that, once viewed, summons the entity bound to it. That is the plan now: <n1>you will watch it, and then capture the creature.</n1>
<div style="text-align: center;">[[Watch the cursed recording]]</div>
<div style="text-align: center;">[[Back|item]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\cursed.mp4" type="video/mp4">
</video>
@@
You watch the tape all the way through, but nothing happens. The cursed entity does not appear. <n1>Perhaps the Zenthari are unaffected by this curse?</n1> It would make sense - after all, this being was born in the worlds of humanoids and wrought havoc there. Perhaps that is the key. You must find a humanoid-inhabited planet advanced <n1>enough to possess VHS technology,</n1> and there use a humanoid to draw Sadako out.
<div style="text-align: center;">[[Back|Ship]]</div>
<<set $smStage to 3>><<if $pics11 is true>><div class="hover-image-wrapper"><img src="IMG/1/0114.png" class="main-image" alt="comics"><a data-passage="0114a" class="hover-link link-internal link-image"><img src="IMG/1/0114a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01140.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0114 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−270 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Wreckage from an ancient battle drifts in the cold void - twisted metal and the colossal hand of a long-dead giant.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0114">>
<img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics11 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0115.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0115 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+14 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Multiple mutated species detected – origin uncertain</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Once ravaged by nuclear war, this world has reshaped itself into alien forms. Life endures here—twisted, adapted, and grotesquely reborn.</span></div>
<div style="text-align: center;"> <a data-passage="0115a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0115">><img src="IMG\1\0115a.png" />
The radar registers life on this planet, yet the land feels barren - perhaps unsettled by your very presence. Still, your curiosity about the lifeforms here gnaws at you. <n1>You have the right “bait” to draw them out,</n1> but the cost may be high. You hesitate, weighing the sacrifice before making your decision.
<div style="text-align: center;"> <<if $human >= 1>> [[Send a humanoid to the planet's surface|0115b]] <<else>> <n2>Get a humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.radi is undefined>>
<<run setup.radi = new Audio("music/radi.mp3")>>
<<run setup.radi.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.radi.play().catch(()=>{})>><img src="IMG\1\0115b.png" />
At the sight of easy prey, swarms of smaller mutant creatures crept out from their hiding places. They tried to approach your “bait,” but suddenly the ground began to tremble. In an instant, all life vanished again, silence falling over the ruined city. Then another tremor - stronger, faster with every heartbeat. And then it appeared: <n1>a colossal beast,</n1> radiating raw physical power. It struck down at the bait—but not as food. No, it saw something else entirely.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\behemoth.mp4" type="video/mp4">
</video>
@@
As you watch the <n1>Behemoth toying with the bait,</n1> you can’t help but wonder how valuable such raw physical strength could be under your command. Yet it is far too large and far too powerful. No prison could contain it - its sheer force would tear through any gravitational field. And you have no creature capable of wearing it down. Reluctantly, you realize you must leave it behind… [[along with the humanoid.|Bridge]]
<<set $human -= 1>><img src="IMG\1\0116.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0116 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+7 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Multiple lifeforms detected – diverse species activity present</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A scarred dwarf planet covered in massive webs and alien trees. A crashed vessel lies entangled among the strands, suggesting something far larger once moved here.</span></div>
<<if $human18 is true>> <div style="text-align: center;"> <a data-passage="18human" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0116">><img src="IMG\1\0116a.png" />
According to your detector, there is life inside the ship. A <n1>humanoid</n1> is trapped within, but not alone. Another lifeform is present - its signals clearly not humanoid. Judging by the state of the planet, it’s most likely some kind of <n1>arachnid.</n1> You move closer and step into the ship.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\spider.mp4" type="video/mp4">
</video>
@@
The arachnid has already taken its prey. The humanoid still lives, but now hangs in the arachnid’s web. <n1>It may have already been injected with venom and reproductive fluids</n1>, making this humanoid perhaps worthless to you. Yet still, you find yourself wondering if you should take it with you.
[[Use mind control to push the arachnid aside]]
[[Leave the humanoid behind|Bridge]]
<<set $human18 to false>>
<img src="IMG\1\0116b.png" />
The arachnid recoils, retreating under your control, and you seize the moment to take the humanoid with you. At first glance, they seem intact - perhaps your decision was the right one after all.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human += 1>>
<<set $arachnid to true>>
<<set $spider to 0>><img src="IMG\1\alarm.png" />
<n2>Emergency!</n2> An uncontrolled process is taking place in the laboratory. One of the humanoids – the one you brought from planet 0116 – is about to give birth to her child. This means you were mistaken, and the arachnid really did inject its genetic material into her body.
<img src="IMG\1\prego.png" />
You immediately transport the humanoid to the cell vault. The child is removed and confined within the cell accelerator chamber. After all, it seems that a new hybrid species has just been created here aboard your ship.
<img src="IMG\1\spidegg.png" />
The new Arachnig species – temporarily referred to as <n1>Muffet</n1> – combines the traits of humanoids and arachnids. Its overall body structure is human, yet the number of limbs and sensory organs corresponds to that of arachnids. Purple skin, six arms, and a multi-eyed face characterize its appearance, where human and spider-like features form a disturbing blend.
<img src="IMG\1\muffet.png" />
It is considered an intelligent species, though <n1>its creation was brought about through corrupt means, which likely affects its mind as well.</n1> Alien logic, distorted thoughts, and unpredictable behavioral patterns may define its consciousness. The true extent of its intelligence, along with the ways it may manifest in social or communicative structures, will only be revealed through further [[tests and observation.|Ship]]
<<set $muffet to true>>
<<set $arachnid to false>>
<<set $spider to 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\muffet1.mp4" type="video/mp4">
</video>
@@
It seems that within <n1>Muffet lies the primal hunting instinct</n1> of the arachnids. When a humanoid subject is sent into its containment cell, the hybrid strikes from ambush and sinks its fangs into the victim. The bite delivers venom into the humanoid’s body, <n1>quickly paralyzing it.</n1> You are about to terminate the test before Muffet devours the captive - yet what unfolds is different from a simple predatory kill. <n1>The venom is not lethal, but merely induces paralysis.</n1> And it seems that, in addition to paralysis, it causes strong <n1>erections</n1> in humanoids. The humanoid is not prey to be consumed, but rather prey to be disarmed. Muffet subdues its victim, leaving it helpless, so it can play with it at leisure.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\muffet2.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #e0e0e0; font-family: monospace; font-size: 15px; line-height: 1.0; background-color: #000000; text-align: left; box-shadow: 0 0 8px #25737d;">
<b style="color:#00ffff;"><n3>⚠ LOG ENTRY – Humanoid × Muffet - Test 1.0</n3></b><br><br>
<span style="color:#9ed8ff;">Humanoid</span> reacted with visible distress upon visual contact with the unknown lifeform.
<span style="color:#ffcc00;">Mind control</span> applied to suppress fear and induce stillness. Subject is now calm and immobile.<br><br>
<span style="color:#ff6666;">Muffet</span> bit the subject, yet did not kill. Venom induced <span style="color:#2e86c1;">total paralysis</span> without signs of lethal damage. Instead of consuming the prey, the entity <span style="color:#a3e635;">restrained</span> it for further interaction.<br><br></div>
<div style="text-align: center;">[[Experimental data recorded|hibrid]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\muffet3.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #e0e0e0; font-family: monospace; font-size: 15px; line-height: 1.4; background-color: #000000; text-align: left; box-shadow: 0 0 8px #25737d;">
<b style="color:#00ffff;"><n3>⚠ LOG ENTRY – Humanoid × Muffet - Test 2.0</n3></b><br><br>
<span style="color:#ff6666;">Muffet</span> immobilized the humanoid again with <span style="color:#ffcc00;">venom</span>, <span style="color:#2e86c1;">paralysis</span> confirmed. After the initial bite, the entity withdrew its fangs and applied no further toxin. Behavior suggests <span style="color:#a3e635;">controlled restraint</span> rather than lethal intent.
</div>
<div style="text-align: center;">[[Experimental data recorded|hibrid]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\muffet4.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #e0e0e0; font-family: monospace; font-size: 15px; line-height: 1.4; background-color: #000000; text-align: left; box-shadow: 0 0 8px #25737d;">
<b style="color:#00ffff;"><n3>⚠ LOG ENTRY – Humanoid × Muffet - Test 3.0</n3></b><br><br>
<span style="color:#ff6666;">Muffet</span> once again keeps the humanoid in <span style="color:#2e86c1;">paralysis</span> but refrains from killing. The entity follows its <span style="color:#ffcc00;">corrupt instincts</span> and initiates direct <span style="color:#a3e635;">contact</span> with the subject.
</div>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\muffet5.mp4" type="video/mp4">
</video>
@@
<div style="text-align: center;">[[Experimental data recorded|hibrid]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\muffet6.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #e0e0e0; font-family: monospace; font-size: 15px; line-height: 1.4; background-color: #000000; text-align: left; box-shadow: 0 0 8px #25737d;">
<b style="color:#00ffff;"><n3>⚠ LOG ENTRY – Humanoid × Muffet - Test 4.0</n3></b><br><br>
<span style="color:#ff6666;">Muffet</span> displays altered behavior, with no <span style="color:#ffcc00;">venom</span> applied. The entity highlights its <span style="color:#a3e635;">humanoid traits</span>, using dialogue to persuade the subject into establishing <span style="color:#2e86c1;">contact</span>. Interaction appears voluntary rather than forced.
</div>
<div style="text-align: center;">[[Experimental data recorded|hibrid]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\muffet7.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #e0e0e0; font-family: monospace; font-size: 15px; line-height: 1.4; background-color: #000000; text-align: left; box-shadow: 0 0 8px #25737d;">
<b style="color:#00ffff;"><n3>⚠ LOG ENTRY – Humanoid × Muffet - Test 5.0</n3></b><br><br>
The <span style="color:#ff6666;">arachnid entity</span> refrains from using <span style="color:#ffcc00;">venom</span> against superior force. Instead, it employs its <span style="color:#a3e635;">multiple limbs</span> to gain advantage and resolve the encounter, demonstrating <span style="color:#2e86c1;">adaptability</span> beyond primal instinct.</div>
<div style="text-align: center;">[[Experimental data recorded|hibrid]]</div><img src="IMG\1\0117.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0117 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+32 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Unknown</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A vast <span style="color:#74b9ff;">glowing sphere</span> drifting through space. Its violet-blue surface hums with <span style="color:#55efc4;">music-like vibrations</span> that echo across the void.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0117">>
<<if setup.disco is undefined>>
<<run setup.disco = new Audio("music/disco.mp3")>>
<<run setup.disco.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.disco.play().catch(()=>{})>><img src="IMG\1\0118.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);">
<b>OBJECT ID:</b><span style="color:#d64141;"> 0118 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+63 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A demonic presence spreads across the planet, consuming all life. Traces suggest the influence of a <span style="color:#c0392b;">succubus</span>.</span>
</div>
<<if $male8 is true>><div style="text-align: center;"> <a data-passage="0118a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0118">>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sucubu.mp4" type="video/mp4">
</video>
@@
You were not mistaken - this is indeed the <n2>work of succubus.</n2> They are draining the planet’s very life force, feeding on its energy until nothing remains. Yet fortune is on your side: you have arrived in time. <n2>Two humanoids are still alive.</n2> If you interrupt the ritual now, you may capture them in a state still usable for your purposes. You gather your energy to strike all at once. <<set $b0118_value = 1>><<set $b0118_intervalID = 0>><<set $b0118_done = false>>
<div id="sliderWrap_b0118">
<div id="sliderDisplay_b0118">
<div id="sliderFill_b0118"></div>
<img id="sliderIcon_b0118" src="IMG/1/suc.png" alt="icon">
</div>
<div style="text-align: center;"><img src="IMG\1\spacek.png" /></div>
</div>
<style>
#sliderWrap_b0118 { max-width: 866px; margin: 0 auto 12px auto; }
/* A sáv */
#sliderDisplay_b0118 {
position: relative;
width: 100%;
height: 40px;
background: #121019;
border: 1px solid #2b2238;
border-radius: 6px;
overflow: visible; /* engedi, hogy az ikon kilógjon */
}
/* Kitöltés réteg */
#sliderFill_b0118 {
position: absolute;
top: 0; left: 0;
height: 100%; width: 0%;
background: #0e0818; /* futás közben az ikon színéből frissül */
border-radius: 5px 0 0 5px;
transition: width .1s linear, background .25s ease;
}
/* Ikon fix mérettel */
#sliderIcon_b0118 {
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
left: 0%;
width: 128px; height: 128px;
pointer-events: none;
filter: drop-shadow(0 0 4px rgba(0,0,0,.85));
}
#tapHint_b0118 { font-size: .9em; opacity: .75; margin: 6px 0 10px; }
</style>
<!-- rejtett minta az átlag szín mintavételéhez -->
<img id="colorSampler_b0118" src="IMG/1/suc.png" alt="sampler" style="display:none;"/>
<<script>>
(function () {
const clamp = (x,min,max)=>Math.max(min,Math.min(max,x));
const pct = v => clamp((v/50)*100, 0, 100);
// ---- egyedi azonosítók / változók ehhez a minijátékhoz ----
const ROOT_ID = "sliderDisplay_b0118";
const FILL_ID = "sliderFill_b0118";
const ICON_ID = "sliderIcon_b0118";
const SAMP_ID = "colorSampler_b0118";
const V_VAR = "$b0118_value";
const ID_VAR = "$b0118_intervalID";
const DONE_VAR = "$b0118_done";
// ---- anti-hold / ritmus szabályozás ----
const PRESS_COOLDOWN_MS = 140; // ennyi időnként számít egy leütés/kattintás
const BLOCK_KEY_REPEAT = true; // OS auto-repeat tiltása
if (typeof window._b0118LastPress !== "number") window._b0118LastPress = 0;
function inScope(){ return !!document.getElementById(ROOT_ID); }
function acceptPress(e, blockRepeat){
if (blockRepeat && e && e.repeat) return false; // lenyomva tartásból jövő ismétlések tiltása
const now = Date.now();
if (now - window._b0118LastPress < PRESS_COOLDOWN_MS) return false; // túl sűrű
window._b0118LastPress = now;
return true;
}
function setBarFromIcon(imgEl){
try{
const S=64, c=document.createElement('canvas'); c.width=S; c.height=S;
const ctx=c.getContext('2d',{willReadFrequently:true});
ctx.drawImage(imgEl,0,0,S,S);
const {data}=ctx.getImageData(0,0,S,S);
let r=0,g=0,b=0,n=S*S;
for(let i=0;i<data.length;i+=4){ r+=data[i]; g+=data[i+1]; b+=data[i+2]; }
r=Math.round(r/n); g=Math.round(g/n); b=Math.round(b/n);
const boost=c=>clamp(Math.round(c*1.2+12),0,255);
const r2=boost(r), g2=boost(g), b2=boost(b);
const fill=document.getElementById(FILL_ID);
if(fill){
fill.style.background =
`linear-gradient(90deg, rgba(${r},${g},${b},0.9) 0%, rgba(${r2},${g2},${b2},0.95) 100%)`;
}
}catch(e){/* marad az alap szín */ }
}
function render(){
if(!inScope()) return;
const v = State.getVar(V_VAR);
const p = pct(v);
const fill = document.getElementById(FILL_ID);
const icon = document.getElementById(ICON_ID);
if(fill) fill.style.width = p + "%";
if(icon) icon.style.left = p + "%";
}
function clearTick(){
const id = State.getVar(ID_VAR);
if(id){ clearInterval(id); State.setVar(ID_VAR,0); }
}
function endTo(pass){
State.setVar(DONE_VAR, true);
clearTick();
Engine.play(pass);
}
function startTick(){
clearTick();
const id=setInterval(()=>{
if(State.getVar(DONE_VAR) || !inScope()){ clearTick(); return; }
let v = State.getVar(V_VAR) - 3; // fogyás
v = Math.max(0, v); // 0 a minimum
State.setVar(V_VAR, v);
render();
// NINCS veszteség 0-nál
}, 500);
State.setVar(ID_VAR, id);
}
function boost(){
if(State.getVar(DONE_VAR) || !inScope()) return;
let v=State.getVar(V_VAR)+2;
if(v>=50){
State.setVar(V_VAR,50);
render();
endTo("0118b"); // SIKER
return;
}
State.setVar(V_VAR,v);
render();
}
// --- ESEMÉNYKEZELŐK (DEFINIÁLVA!) ---
function onKey(e){
if(e.code !== "Space") return;
e.preventDefault();
if (!acceptPress(e, BLOCK_KEY_REPEAT)) return;
boost();
}
function onPointer(e){
if(e.type !== "pointerdown") return;
const bar = document.getElementById(ROOT_ID);
if (!bar) return;
// csak akkor fogadjuk el, ha a sávon belül kattint
if (e.target && e.target.closest && e.target.closest(`#${ROOT_ID}`)) {
if (!acceptPress(null, false)) return; // pointernél nincs repeat flag
boost();
}
}
// egyszeri globális bind
if(!window._b0118Bound){
document.addEventListener('keydown', onKey, {passive:false});
document.addEventListener('pointerdown', onPointer, {passive:true});
if (Story && Story.on){
Story.on('passage:before', () => { clearTick(); State.setVar(DONE_VAR, true); });
}
window._b0118Bound = true;
}
// szín beállítás a samplerből
const sampler=document.getElementById(SAMP_ID);
if (sampler && sampler.complete) setBarFromIcon(sampler);
else if (sampler) sampler.onload=()=>setBarFromIcon(sampler);
// indulás
setTimeout(()=>{ render(); startTick(); },10);
})();
<</script>>
<<set $male += 2>> <<set $male8 to false>><img src="IMG\1\0118b.png" />
Your <n2>mind-controlling</n2> brainwaves burst out all at once. They seize control over the two humanoids, while forcing the succubus into a brief <n2>state of unconsciousness.</n2> That is just enough time to take the two humanoids away.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set _roll = random(1,4)>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.play().catch(()=>{})>>
<</switch>>
<img src="IMG\1\0119.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0119 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+48 °C</span> <span style="opacity:.75;">(elevated)</span>
<b>POPULATION:</b> <span style="color:#fff;"><i>Unmeasurable</i></span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The planet is currently under <n3>Velgron</n3> occupation. All native resistance has been neutralized.</span></div>
<div style="text-align: center;"> <a data-passage="0119a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0119">><img src="IMG\1\0119a.png" />
You find only a portion of the <n3>victorious Velgron army</n3>, celebrating their triumph among the ruins of the devastated city. The planet burns, nothing left of it but barren desolation. A few survivors remain, but they already swell the ranks of the <n3>Velgrons’ slave camps.</n3> You do not interfere. Not now, not against them. To confront the Velgrons after a fresh victory - <n3>when their bloodlust still rages </n3> - would be nothing short of suicide. Once more, your gaze sweeps across the ruins, and you cast one last look at the [[humanoid]] who will become the <n3>Velgrons’ trophy</n3>today. Then you turn your back and [[return to your ship.|Bridge]]
<<if setup.velgri is undefined>>
<<run setup.velgri = new Audio("music/velgri.mp3")>>
<<run setup.velgri.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.velgri.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\velgri.mp4" type="video/mp4">
</video>
@@
Her fate is sealed. There is no happy ending for her. She will either end up as a slave who is sold, or she will go mad here and her life will be over. Judging by the look on her face, the latter [[will happen soon.|0119a]]<img src="IMG\1\0120.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0120 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+145 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A scorched volcanic world of magma rivers and toxic air. Constant eruptions and quakes tear across the surface. No life detected - a true dead wasteland.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.magma is undefined>>
<<run setup.magma = new Audio("music/magma.mp3")>>
<<run setup.magma.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.magma.play().catch(()=>{})>>
<<set $lastvisit to "0120">>
<<if $hallow2>>
<div style="position:fixed; right:20px; bottom:120px; z-index:9999;">
<a href="javascript:void(0);" onclick="SugarCube.Engine.play('hallow2');">
<img src="IMG/pumpkin.png" alt="pumpkin" style="max-width:120px;">
</a>
</div>
<</if>><img src="IMG\1\0109.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0121 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+666 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;"><n3>VOID FRACTURE.</n3> Another rupture in the fabric of existence, identical in nature to 0109. Its depths may lead to an uncharted realm or a parallel dimension beyond known space.</span></div>
<div style="text-align: center;"> [[Enter the Rift|Rift2]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0121">>
<div style="text-align: center;"><img id="rfog_img" src="IMG/MG/2/1.png" alt="" style="max-width:100%;height:auto;margin-bottom:12px;">
At first, it seems that this void rift leads into <n2>nothingness.</n2> Red mist and nothing more. <n2>However, it might still be worth examining more closely.</n2> Perhaps it hides something valuable.
<input id="rfog_slider" type="range" min="1" max="50" value="1" step="1"
style="width: 60%; appearance: none; height: 8px; background: #000000; border-radius: 8px; outline: none; cursor: pointer; margin: 0; padding: 0;"></div>
<div style="text-align: center;">[[Back|0121]]</div>
<<script>>
(function redFog_isolated(){
// ----- Beállítások -----
const RFOG_EVENT_NS = '.rfog38';
const rfogImgBase = 'IMG/MG/2/';
const rfogHoldMs = 1000;
const rfogNextPassage = 'demon';
// Inverz irány (1 -> 50, 50 -> 1)
const SL_MIN = 1;
const SL_MAX = 50;
const rfogTargetValue = 13; // ÚJ: ezen a CSÚSZKA-értéken lép tovább
let rfogTimeout = null;
const thisPassage = State.passage;
function rfogCleanup() {
if (rfogTimeout) { clearTimeout(rfogTimeout); rfogTimeout = null; }
$(document).off(RFOG_EVENT_NS);
}
// Csúszkaérték -> képsorszám (inverz)
function sliderToImageIndex(v) {
// 1→50, 2→49, … 50→1
return (SL_MIN + SL_MAX) - v;
}
function rfogUpdate(val) {
const v = Number(val);
const imgIdx = sliderToImageIndex(v);
const img = document.getElementById('rfog_img');
if (img) { img.src = rfogImgBase + imgIdx + '.png'; }
if (v === rfogTargetValue) {
if (!rfogTimeout) {
rfogTimeout = setTimeout(() => {
if (State.passage === thisPassage) {
const slider = document.getElementById('rfog_slider');
if (slider && Number(slider.value) === rfogTargetValue) {
rfogCleanup();
Engine.play(rfogNextPassage);
}
}
}, rfogHoldMs);
}
} else {
if (rfogTimeout) { clearTimeout(rfogTimeout); rfogTimeout = null; }
}
}
$(document).one(':passagedisplay' + RFOG_EVENT_NS, function () {
const slider = document.getElementById('rfog_slider');
if (!slider) return;
rfogUpdate(slider.value);
slider.addEventListener('input', (e) => rfogUpdate(e.target.value), { passive: true });
});
$(document).one(':passageend' + RFOG_EVENT_NS, rfogCleanup);
})();
<</script>>
<<if setup.mass is undefined>><<run setup.void = new Audio("music/void.mp3")>><<run setup.void.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.void.play().catch(()=>{})>><img src="IMG\1\0109a.png" />
The radar locks onto something extraordinary - an entire floating island adrift within the crimson haze. <n2>Two signatures emerge.</n2> One belongs to an entity beyond all known classification, the other… undeniably humanoid. But what could a human be doing here, in this forsaken region at the edge of the galaxy? That mystery alone compels you to approach. Upon arrival, what you witness does not shock you, but it does bring clarity. The unidentifiable being radiates a life-force unlike anything you have felt before - <n2>immense, overwhelming, and ancient.</n2> Unlike most entities of its kind, this one is formidable in every sense: its body exudes raw strength, and its oppressive aura weighs heavily on all who dare to approach.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\demon.mp4" type="video/mp4">
</video>
@@
An unknown place, a fractured dimension, and a being beyond comprehension. The lone humanoid, ensnared within this void, is not worth the risk. Turning back feels like the only rational choice, leaving the rift and its horrors behind. Yet as you withdraw, one truth becomes undeniable: <n2>the corruption gnawing at reality itself bleeds from here,</n2> seeping outward like a poison into [[the world beyond.|Bridge]]<img src="IMG\1\0122.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0122 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+28 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Large humanoid population inhabiting the planet</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Their civilization appears primitive by galactic standards - functional, yet unremarkable among known humanoid worlds.</span></div>
<div style="text-align: center;"><<if $vhs is true>>This planet is suitable for your mission. <n1>It is inhabited by humanoids, and their level of technology is sufficient. </n1> Here you can activate the curse, which - according to your plans - will be carried out with the aid of the satellite orbiting the planet. -> [[Connect to the satellite]]<</if>><<if $raketa is true>>[[Fire the explosive into the star]]<</if>> <<if $sadaq is true>>[[Set a trap for Sadako]]<</if>>
[[Back|Bridge]]</div>
<<set $lastvisit to "0122">><img src="IMG\1\0122a.png" />
When you opened the satellite to access its processor, you were struck first by how primitive and ancient the technology appeared. Then came the true shock - <n1>it outwitted you.</n1> So old, so archaic, that even you no longer recognize its design. But retreat is not an option. You must <n1>upload the cursed recording to the satellite</n1> and broadcast it into the home of a humanoid. This way, your presence will have no direct influence on the cursed entity. You will not make contact with the bait humanoid, and perhaps, in this way, you will succeed in <n1>summoning Sadako.</n1>
<img src="IMG\1\0122b.png" />
But your plan did not unfold as intended. The old device short-circuited and collapsed. <n1>Instead of reaching a single humanoid, the cursed recording was broadcast across the entire planet.</n1> Wherever a screen was watched, the transmission played, granting this dangerous curse dominion over all. Now it can strike anywhere, feeding on the life force of the humanoids. It was unleashed because of you… and it must be [[contained by you.|atok]]
<<set $atoksad to 0>>
<<if setup.satelit is undefined>><<run setup.satelit = new Audio("music/satelit.mp3")>><<run setup.satelit.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.satelit.play().catch(()=>{})>>
<<set $scanMax = 50>><<set $targetVals to (Array.isArray($targetVals) ? $targetVals : [9,17,24,39,49])>><<set $foundTargets to (Array.isArray($foundTargets) ? $foundTargets : [])>><<set $targetPassages to (typeof $targetPassages === 'object' ? $targetPassages : {
9:"atok1", 17:"atok2", 24:"atok3", 39:"atok4", 49:"atok5"
})>><<set $holdMs = (typeof $holdMs === "number" && isFinite($holdMs)) ? $holdMs : 2000>><div id="scanGame"><div id="scanStage">
<img class="bg-img" src="IMG/1/atok.png" alt="">
<img id="cross" src="IMG/1/cros.png" alt="Célkereszt" draggable="false">
</div><div style="text-align:center; margin:.4rem 0 .2rem;">
The <n2>Curse of Sadako</n2> has been unleashed upon the world. She can manifest anywhere across the planet. Yet even so, you cannot give up - you must attempt to capture her. The task will be far more difficult now, but your radar still detects the location of her next appearance.</div><div class="slider-wrap" style="margin-top:12px;"><input id="scanSlider" type="range" min="0" max="<<print $scanMax>>" value="0" step="1"></div><<if $atoksad > 2>><div style="text-align:center; margin-top:.4rem;">[[A new plan is required]]</div><<else>><div style="text-align:center; margin-top:.4rem;"><n2>Locate at least three sites where Sadako manifests</n2></div><</if>>
<div id="scanStatus" style="margin-top:6px; font-weight:600;"></div>
</div>
<<if setup.radar is undefined>><<run setup.radar = new Audio("music/radar.mp3")>><<run setup.radar.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.radar.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\atok1.mp4" type="video/mp4">
</video>
@@
By the time you arrived at the scene, the curse had <n1>already claimed its victim.</n1> That can only mean one thing: it seized control within mere seconds. With her technique - and in a world as corrupted as this - the outcome is hardly surprising. You step into the room, powerless to intervene. <n1>Sadako</n1> has not fully abandoned her own dimension. The instant she senses your presence, she retreats, vanishing into the flickering screen of the television.
<div style="text-align: center;">[[Back|atok]]</div>
<<set $atoksad += 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\atok6.mp4" type="video/mp4">
</video>
@@
In this form, capturing her is impossible. She can appear at any moment, vanish without warning, and even exist in two places at once. Your mistake granted her freedom, and she will wander unchecked until she manifests in every screen that played the cursed film. Yet from this realization comes your only idea: <n1>she must be sealed inside those very televisions.</n1> The question is - how do you shut them all down at once? There is a way… though it is nothing short of drastic.
<img src="IMG\1\nap.png" />
You must trigger <n1>a solar flare.</n1> To achieve this, you require a charge of unimaginable power - one that, once delivered into the heart of the star, will detonate and unleash a surge of electromagnetic energy. <n1>The pulse would render every electronic device on the planet useless,</n1> if only for a short time, extinguishing every screen through which the curse moves. But with this revelation comes the next, critical question: where could you possibly obtain a charge of such magnitude? Fortunately, you know of a species whose craft is destruction and [[war itself.|Bridge]]
<<set $vhs to false>>
<<set $toltet to true>>
<<set $smStage to 4>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\atok2.mp4" type="video/mp4">
</video>
@@
When you arrive, the place is already steeped in the mark of the curse. The victim has fallen - brought down in a matter of seconds. With such power, in a reality as decayed as this, it feels almost inevitable. You enter the room, but the situation is beyond your reach. <n1>Sadako is still tethered to her own realm.</n1> The moment her gaze meets yours, she dissolves into the warped static of the television, as if she had never been there at all.
<div style="text-align: center;">[[Back|atok]]</div>
<<set $atoksad += 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\atok3.mp4" type="video/mp4">
</video>
@@
You arrived at the scene a little too late - or perhaps <n1>Sadako has grown bolder, </n1>for this time she has fully manifested in your world. Yet even in this form, you stand no chance of capturing her - or so it seems. In a single instant, she withdraws, vanishing into the blinding white glare of the television behind her.
<div style="text-align: center;">[[Back|atok]]</div>
<<set $atoksad += 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\atok5.mp4" type="video/mp4">
</video>
@@
When you stepped inside, it seemed for a fleeting moment as if her victim was gaining the upper hand. But you were wrong. Every detail of this scene was hers to command—she created it, shaped it, and orchestrated the moment to be this brutal, this feral. And so, once again, she slipped beyond your grasp.
<div style="text-align: center;">[[Back|atok]]</div>
<<set $atoksad += 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\atok4.mp4" type="video/mp4">
</video>
@@
You came to the scene too late - or perhaps <n1>Sadako has become strong enough to project her full form</n1> into this reality. Yet the advantage is only an illusion: before you can reach her, she collapses back into the television behind her, its screen pulsing with searing white light - as if she had never stood before you.
<div style="text-align: center;">[[Back|atok]]</div>
<<set $atoksad += 1>><img src="IMG\1\0123.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0123 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−270 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A massive object of unknown origin drifts through the void. To the untrained eye, it resembles a bright yellow toy with an unnaturally smooth surface.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0123">>
<<if setup.duck is undefined>><<run setup.duck = new Audio("music/duck.mp3")>><<run setup.duck.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.duck.play().catch(()=>{})>><<if $pics12 is true>><div class="hover-image-wrapper"><img src="IMG/1/0124.png" class="main-image" alt="comics"><a data-passage="0124a" class="hover-link link-internal link-image"><img src="IMG/1/0124a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01240.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0124 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−270 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A vast cluster of rocky fragments drifts through the void. Each scarred surface bears the marks of ancient impacts from countless eons of collisions.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0124">><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics12 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0125.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0125 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+38 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Two temporary life forms detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Thermal scans show recent landings near ancient ruins. Residual heat and movement suggest something significant is unfolding on the surface.</span></div>
<<if $male9 is true>><div style="text-align: center;"> <a data-passage="0125a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0125">><img src="IMG\1\captainv.png" />
The <n3>Velgron warlord</n3> receives you. His gaze is stern, yet not hostile - prepared to answer your questions or forge an agreement with you. For the cooperation between your species has always been profitable, bringing benefits to both sides.
<<link "Ask for a powerful explosive">>
<<replace "#velgronreveal">>
The <n3>Velgron Warlord</n3> is willing to grant you such an explosive, but only if you fulfill a request. You must locate a humanoid in the <n3>0120–0130 Galactic Region</n3>. This humanoid is a general, one the Velgrons were hired to capture - yet they have failed to track him down. Bring the <n1>General</n1> to them, and the explosive will be yours.
<</replace>>
<</link>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<div id="velgronreveal"></div>
<<set $velgronq to true>>
<<if $captain is true>> <<goto "captainkuldi">> <</if>><img src="IMG\1\0125a.png" />
You are a witness to a hunt. A <n3>Tarkatan</n3> is closing in on a <n3>humanoid astronaut,</n3> stretching its claws forward, only an arm’s length away from seizing its prey. But if you act now, you may save the humanoid - and perhaps even capture the Tarkatan itself. <n3>One of your creatures could help. </n3> It must be strong enough, and fast enough, to reach the Tarkatan before it reaches the humanoid.
<<if $horsehuman is true>>[[Send the horse-man to catch it|male9]]<<else>><n2>Required creature missing:<br><n2>Horse-Human – Can be created in the Bio-Lab</n2></n2> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\male9.mp4" type="video/mp4">
</video>
@@
Your creature stirred up a massive cloud of dust as it slammed into the planet’s surface. Bursting forth from the haze, it lunged at the <n3>Tarkatan</n3>. The ambush was so sudden there was no chance to block the strike. In moments, the beast overpowered its prey and claimed the victory. With your mind control, you seized the male humanoid. The same fate awaited the <n3>Tarkatan</n3> female. But after your creature finished with her, you assumed she would be an easy catch. Your vigilance wavered and she seized the moment, slipping from your grasp and [[escaping successfully.|Bridge]]
<<set $male9 to false>>
<<set $male += 1>><<if $velgronq is true>><div class="hover-image-wrapper"><img src="IMG/1/0126.png" class="main-image" alt="comics"><a data-passage="0126a" class="hover-link link-internal link-image"><img src="IMG/1/0126a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01260.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0126 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−93 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A desolate, rock-covered world marked by countless craters and deep scars. Its surface bears the silence of ages, untouched and lifeless, drifting cold beneath the distant stars.</span></div>
<<if $velgronq is true>><div style="text-align: center;"><n3>Target the ship!</n3></div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0126">>
<<if setup.captain && !setup.captain.paused>>
<<run setup.captain.pause()>>
<<run setup.captain.currentTime = 0>>
<</if>><img src="IMG\1\catch.png" />
<div style="text-align: center;">You’ve found it – <n1>this is the ship,</n1> and on board is the passenger the Velgrons are looking for. You must capture and deliver him in order to receive the explosive material.</div><<set $spc84_value = 1>><<set $spc84_intervalId = 0>><<set $spc84_done = false>>
<div id="sliderWrap_spc84"><div id="sliderDisplay_spc84"><div id="sliderFill_spc84"></div><img id="sliderIcon_spc84" src="IMG\1\hajo1.png" alt="ship"><img id="sliderGoal_spc84" src="IMG\1\hajo2.png" alt="goal"></div>
<div style="text-align:center;margin-top:8px;"><img src="IMG\1\spacek.png"></div></div><div style="text-align: center;">[[Back|Bridge]]</div>
<style>
#sliderWrap_spc84 { max-width: 866px; margin: 0 auto 12px auto; }
/* sáv */
#sliderDisplay_spc84{
position: relative;
width: 100%;
height: 40px;
background: #121019;
border: 1px solid #2b2238;
border-radius: 6px;
overflow: visible; /* hogy a képek kilóghassanak */
}
/* kitöltés */
#sliderFill_spc84{
position: absolute; inset: 0 auto 0 0;
width: 0%;
background: linear-gradient(90deg,#0b0a12,#1a1230 80%);
border-radius: 5px 0 0 5px;
transition: width .1s linear, background .25s ease;
}
/* mozgó ikon (űrhajó) */
#sliderIcon_spc84{
position: absolute;
left: 0%; top: 50%;
transform: translate(-50%,-50%);
width: 128px; height: 128px;
pointer-events: none;
filter: drop-shadow(0 0 4px rgba(0,0,0,.85));
}
/* cél jelző a jobb szélen */
#sliderGoal_spc84{
position: absolute;
right: -36px; /* kicsit kilógjon */
top: 50%;
transform: translateY(-50%);
width: 128px; height: 128px;
pointer-events: none;
filter: drop-shadow(0 0 6px rgba(0,0,0,.9));
}
</style>
<<script>>
(function(){
// ------- EGYEDI BEÁLLÍTÁS / ÁLLANDÓK -------
const ROOT = "sliderDisplay_spc84";
const FILL = "sliderFill_spc84";
const ICON = "sliderIcon_spc84";
const GOAL = "sliderGoal_spc84";
const VVAR = "$spc84_value";
const IDVAR = "$spc84_intervalId";
const DVAR = "$spc84_done";
const MAX = 50; // cél érték
const DECAY = 3; // alap csökkenés tickenként
const BOOST = 2; // növekedés egy leütésre
const TICKMS = 500;
const PRESS_COOLDOWN_MS = 140;
const BLOCK_KEY_REPEAT = true;
// ---- ÚJ: extra nehezítés szabályozása ----
const EXTRA_TICK_LIMIT = 4; // 4 tickenként…
const EXTRA_PENALTY = 2; // … -5 pont büntetés
let extraTickCounter = 0;
// ------- SEGÉDFÜGGVÉNYEK -------
const clamp = (x,min,max)=>Math.max(min,Math.min(max,x));
const pct = v => clamp((v / MAX) * 100, 0, 100);
function inScope(){ return !!document.getElementById(ROOT); }
function render(){
if(!inScope()) return;
const v = State.getVar(VVAR);
const p = pct(v);
const fill = document.getElementById(FILL);
const icon = document.getElementById(ICON);
if (fill) fill.style.width = p + "%";
if (icon) icon.style.left = p + "%";
}
function clearTick(){
const id = State.getVar(IDVAR);
if (id){ clearInterval(id); State.setVar(IDVAR, 0); }
}
function success(){
State.setVar(DVAR, true);
clearTick();
Engine.play("captain");
}
function startTick(){
clearTick();
const id = setInterval(()=>{
if(State.getVar(DVAR) || !inScope()){ clearTick(); return; }
// alap csökkenés
let v = State.getVar(VVAR) - DECAY;
if (v < 0) v = 0;
// extra tick számlálás
extraTickCounter++;
if (extraTickCounter >= EXTRA_TICK_LIMIT){
v -= EXTRA_PENALTY;
if (v < 0) v = 0;
extraTickCounter = 0; // újrakezdjük
}
State.setVar(VVAR, v);
render();
}, TICKMS);
State.setVar(IDVAR, id);
}
function boost(){
if(State.getVar(DVAR) || !inScope()) return;
let v = State.getVar(VVAR) + BOOST;
if (v >= MAX){
State.setVar(VVAR, MAX);
render();
success();
return;
}
State.setVar(VVAR, v);
render();
}
// ------- INPUT KEZELÉS -------
if (typeof window._spc84LastPress !== "number") window._spc84LastPress = 0;
function acceptPress(e, blockRepeat){
if (blockRepeat && e && e.repeat) return false;
const now = Date.now();
if (now - window._spc84LastPress < PRESS_COOLDOWN_MS) return false;
window._spc84LastPress = now;
return true;
}
function onKey_spc84(e){
if (e.code !== "Space") return;
e.preventDefault();
if (!acceptPress(e, BLOCK_KEY_REPEAT)) return;
boost();
}
function onPointer_spc84(e){
if (e.type !== "pointerdown") return;
const bar = document.getElementById(ROOT);
if (bar && e.target && e.target.closest && e.target.closest("#"+ROOT)){
if (!acceptPress(null, false)) return;
boost();
}
}
// ha már kötve volt, előbb takarítsunk
if (window._spc84Bound){
document.removeEventListener("keydown", window._spc84_onKey);
document.removeEventListener("pointerdown", window._spc84_onPtr);
window._spc84Bound = false;
}
window._spc84_onKey = onKey_spc84;
window._spc84_onPtr = onPointer_spc84;
document.addEventListener("keydown", onKey_spc84, {passive:false});
document.addEventListener("pointerdown", onPointer_spc84, {passive:true});
window._spc84Bound = true;
// Passage elhagyásakor tisztítás
if (Story && Story.on){
Story.on("passage:before", function(){
State.setVar(DVAR, true);
clearTick();
if (window._spc84Bound){
document.removeEventListener("keydown", window._spc84_onKey);
document.removeEventListener("pointerdown", window._spc84_onPtr);
window._spc84Bound = false;
}
});
}
// indulás
setTimeout(()=>{ render(); startTick(); }, 10);
})(); // <- most kerül a legvégére
<</script>>
<<if setup.captain is undefined>><<run setup.captain = new Audio("music/captain.mp3")>><<run setup.captain.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.captain.play().catch(()=>{})>><img src="IMG\1\catch2.png" />
You managed to catch up to her ship and temporarily disable it. Finally, you boarded. There she was before you – <n3>your target, defenseless.</n3> You raised your hand, ready to unleash your mind control ability, when she suddenly cried out: <n3>‘Wait! Let’s make a deal!’</n3> You paused, allowing her to rise from the floor and remove her helmet.
<img src="IMG\1\catch3.png" />
The stranger introduced herself – <n3>General Palmer,</n3> governor of <n3>Planet 0119,</n3> the very world the Velgrons had conquered, most likely on commission, as mercenaries. It is no surprise they are furious, since you had failed to fully complete your task – the planet’s leader had escaped. But now you’ve finally captured her. All that remains is to bring her back and you will receive the explosives you were promised. However, she has now made you an offer. She told you that if you let her go and give her some time, she can provide you with what you need as well. If time were not pressing, you might have considered her offer, knowing well the fate that awaits her among the Velgrons. But you cannot wait. You focus once more, seizing her mind with your control. Then you return to your ship, ready to deliver [[her to the Velgrons.|0126]]
<<set $velgronq to false>>
<<set $vhs to false>>
<<set $captain to true>>
<<if setup.captain && !setup.captain.paused>>
<<run setup.captain.pause()>>
<<run setup.captain.currentTime = 0>>
<</if>><img src="IMG\1\captainv.png" />
You enter the chamber where the pact was made and hand over the humanoid. <n1>With that, your part of the bargain is fulfilled.</n1> Now it is the warlord’s turn to deliver what he promised – the explosives. Rising from his throne, he summons one of his soldiers. With each heavy step, the floor trembles, until the warlord orders him to give you everything you need. The warlod then steps before you and seizes the humanoid still under your mind control. <n1>With a satisfied grin, he lifts the captive with ease</n1> and, cradling them in his arms, begins to walk out of the throne room. You follow closely behind the Velgron soldier.
<img src="IMG\1\raketa.png" />
You have obtained what you needed – the <n1>Erebus Launcher.</n1> With this weapon, you will be capable of unleashing an explosion that triggers a devastating electromagnetic discharge across the planet. You head back toward your ship when you notice a massive crowd gathered in front of the throne room. Curiosity draws you closer. That’s when you catch sight of the <n1>Velgron soldier and the humanoid you had captured.</n1> It seems that the leader of the conquered planet is being subjected to a public display – torture at the hands of the Velgron soldiers, either for their amusement or for some darker purpose. You cast [[one last glance at the humanoid…]] and then you return to [[your ship.|Bridge]]
<<set $captain to false>>
<<set $raketa to true>>
<<if setup.step is undefined>>
<<run setup.step = new Audio("music/step.mp3")>>
<<run setup.step.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.step.play().catch(()=>{})>>
<<set $smStage to 5>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\palmer.mp4" type="video/mp4">
</video>
@@
Will they execute her? Enslave her? Or perhaps deliver her to the one who ordered the conquest? You cannot be certain. One thing, however, is clear – <n3>they will toy with her first,</n3> and only then will they [[decide her fate.|Bridge]]<img src="IMG\1\nap2.png" />
<div style="text-align: center;">To trigger the <n3>electromagnetic discharge,</n3> you must fire the projectile at the right place, at the right time.</div>
<<set $aim72_pos = 0>><<set $aim72_dir = 1>><<set $aim72_running = false>><<set $aim72_intervalId = 0>><<set $aim72_failed = false>><div id="aim72_wrap"><div id="aim72_track"><div id="aim72_zone"></div><div id="aim72_marker"></div></div><div id="aim72_msg"></div></div>
<style>
#aim72_wrap{max-width:866px;margin:10px auto 14px auto;font-family:inherit}
.aim72_label{margin-bottom:8px;opacity:.9}
#aim72_track{
position:relative;height:28px;border-radius:8px;overflow:hidden;
background:#0f0f14;border:1px solid #2b2b36; box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}
/* célzóna: középen ül, szélesség: 18% (állítható) */
#aim72_zone{
position:absolute;top:0;left:48.5%;
width:3%;height:100%;
background:linear-gradient(180deg,rgba(231,76,60,.85),rgba(231,76,60,.7));
box-shadow:0 0 12px rgba(231,76,60,.45) inset;
pointer-events:none;
}
/* mozgó marker (célkereszt csík) */
#aim72_marker{
position:absolute;top:0;left:0%;
width:2px;height:100%;
background:linear-gradient(180deg,#8fd3ff,#49b0ff);
box-shadow:0 0 10px rgba(73,176,255,.75), 0 0 2px rgba(255,255,255,.25) inset;
transform:translateX(-50%);
pointer-events:none;
}
#aim72_msg{margin-top:8px;min-height:22px;color:#c8c8d0}
#aim72_msg b{color:#fff}
</style>
<<script>>
(function(){
// ---- egyedi konstansok / változók ----
const TRACK = "aim72_track";
const ZONE = "aim72_zone";
const MARKER = "aim72_marker";
const MSG = "aim72_msg";
const IDVAR = "$aim72_intervalId";
const RUNVAR = "$aim72_running";
const POSVAR = "$aim72_pos";
const DIRVAR = "$aim72_dir";
const FAILVAR = "$aim72_failed";
// sebesség (px/step helyett %, így reszponzív): minél nagyobb, annál gyorsabb
const SPEED_PCT_PER_TICK = 2.2;
const TICK_MS = 18;
// billentyűk
const KEY_FIRE = "Space";
const KEY_RELOAD = "KeyR";
// segédek
const clamp = (x,min,max)=>Math.max(min,Math.min(max,x));
const inScope = ()=>document.getElementById(TRACK)!=null;
function getZoneBoundsPct(){
const zone = document.getElementById(ZONE);
const track = document.getElementById(TRACK);
if(!zone || !track) return {min:45, max:55};
const w = track.clientWidth || 1;
const zl = zone.offsetLeft;
const zw = zone.clientWidth;
const minPct = (zl / w) * 100;
const maxPct = ((zl + zw) / w) * 100;
return {min:minPct, max:maxPct};
}
function render(){
if(!inScope()) return;
const p = clamp(State.getVar(POSVAR), 0, 100);
const m = document.getElementById(MARKER);
if(m) m.style.left = p + "%";
}
function setMsg(html){ const el = document.getElementById(MSG); if(el) el.innerHTML = html || ""; }
function start(){
if(State.getVar(RUNVAR) || !inScope()) return;
State.setVar(RUNVAR, true);
State.setVar(FAILVAR, false);
setMsg("");
const id = setInterval(()=>{
if(!inScope()){ stop(); return; }
let p = State.getVar(POSVAR);
let d = State.getVar(DIRVAR);
p += SPEED_PCT_PER_TICK * d;
if(p >= 100){ p = 100; d = -1; }
if(p <= 0){ p = 0; d = 1; }
State.setVar(POSVAR, p);
State.setVar(DIRVAR, d);
render();
}, TICK_MS);
State.setVar(IDVAR, id);
}
function stop(){
const id = State.getVar(IDVAR);
if(id){ clearInterval(id); State.setVar(IDVAR, 0); }
State.setVar(RUNVAR, false);
}
function fire(){
if(!inScope() || !State.getVar(RUNVAR)) return;
// találat ellenőrzés
const p = State.getVar(POSVAR);
const {min, max} = getZoneBoundsPct();
const hit = (p >= min && p <= max);
stop();
if(hit){
setMsg("Bullseye! The payload surges away, racing straight into the heart of the star…");
// kis késleltetés a visszajelzéshez, majd robban passage
setTimeout(()=>Engine.play("robban"), 350);
}else{
State.setVar(FAILVAR, true);
setMsg("Shot failed. <b>Reload with R!</b>");
}
}
function reload(){
if(!inScope()) return;
// csak akkor legyen értelme, ha tényleg hibáztunk vagy áll a kör
if(!State.getVar(FAILVAR) && State.getVar(RUNVAR)) return;
State.setVar(POSVAR, 0);
State.setVar(DIRVAR, 1);
State.setVar(FAILVAR, false);
render();
start();
}
// ---- eseménykezelők (egyedi, eltávolíthatók) ----
function onKey(e){
if(e.code === KEY_FIRE){
e.preventDefault();
fire();
}else if(e.code === KEY_RELOAD){
reload();
}
}
// duplabind ellen védelem
if(window._aim72Bound){
document.removeEventListener("keydown", window._aim72_onKey);
window._aim72Bound = false;
}
window._aim72_onKey = onKey;
document.addEventListener("keydown", onKey, {passive:false});
window._aim72Bound = true;
// passage elhagyásakor takarítás
if(Story && Story.on){
Story.on("passage:before", function(){
stop();
if(window._aim72Bound){
document.removeEventListener("keydown", window._aim72_onKey);
window._aim72Bound = false;
}
});
}
// indulás
setTimeout(()=>{ render(); start(); }, 10);
})();
<</script>>
<<if setup.aim is undefined>>
<<run setup.aim = new Audio("music/aim.mp3")>>
<<run setup.aim.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.aim.play().catch(()=>{})>><img src="IMG\1\nap3.png" />
A <n3>massive explosion erupted,</n3> followed by a solar flare whose enormous plume lashed out and struck <n3>the planet.</n3> Then another eruption came, and a second beam of searing light crashed down upon the planet - as if a fiery whip sought to punish the world itself. You fly closer to the planet, eager to see if your plan has succeeded.
<img src="IMG\1\nap4.png" />
The projectile struck the star at precisely the right moment, <n3>unleashing a chain reaction of solar flares.</n3> The electromagnetic discharge surged outward, overwhelming the planet’s fragile defenses. Power grids collapsed, transformers exploded, and the planet’s entire infrastructure was thrown <n3>into chaos.</n3> With this, you ensured that in this dimension <n3>Sadako cannot manifest</n3> - for there are no longer any functioning electronic devices through which she could cross into this world. Now, all you need is a single working TV and a bit of power to set the [[final trap for Sadako.|0122]]
<<if setup.aim && !setup.aim.paused>>
<<run setup.aim.pause()>>
<<run setup.aim.currentTime = 0>>
<</if>>
<<if setup.dur is undefined>>
<<run setup.dur = new Audio("music/dur.mp3")>>
<<run setup.dur.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.dur.play().catch(()=>{})>>
<<set $raketa to false>>
<<set $sadaq to true>><img src="IMG\1\tv.png" />
You have acquired a video playback device - a television. To you, it is outdated, ancient technology. Its simplicity once again poses some difficulty, but <n3>you manage to repair</n3> it and bring it back under power.”
<img src="IMG\1\tv2.png" />
This was the moment the second phase of your plan came into play. You carried the repaired device <n3>far from civilization,</n3> setting it up in a remote forest clearing and powering it with a portable energy unit. For your trap, you placed one of your own humanoids from your ranks before the glowing screen. But the humanoid was not left alone. Hidden in the shadows of the trees waited your <n3>werewolf></n3> - ready to strike at the critical moment. You believed that after being <n3>imprisoned within her own dimension, Sadako</n3> would be blinded by rage and less cautious. When she attempted to cross through the only channel left to her - <n3>the flickering static of the television screen</n3> - she would recklessly emerge, seeking strength by slaughtering the humanoid. And that is the exact moment when your trap would <<if $werewolf is true>>[[spring shut.]]<<else>><n2>Required creature missing:<br><n2>Werewolf</n2></n2><</if>>
<<if setup.static is undefined>>
<<run setup.static = new Audio("music/static.mp3")>>
<<run setup.static.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.static.play().catch(()=>{})>>
<<set $sadaq to false>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sadwolf1.mp4" type="video/mp4">
</video>
@@
The television came to life. At first, only a few moments of formless static hiss filled the clearing, and then it happened - just as you had anticipated. <n1>Sadako, careless and unaware of the werewolf’s presence, attempted to cross over.</n1> Her body partially manifested, just enough for the beast to strike. The werewolf seized her and with <n1>brute force dragged her into this dimension.</n1>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sadwolf2.mp4" type="video/mp4">
</video>
@@
Then the werewolf turned Sadako’s own weapon against her. The very tool she had used to drain the energy of humanoids was now wielded by the beast to weaken and [[exhaust her...]]
<<set $sadako to true>>
<<set $samara to 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sadwolf3.mp4" type="video/mp4">
</video>
@@
Sadako’s physical form was broken in the werewolf’s claws. <n1>She was weakened enough for you to finally capture her.</n1> Since mind control had no effect on her, the third phase of your plan began. For the shattered and exhausted Sadako, you prepared another trap. You recalled your werewolf, deliberately granting her a path to escape. <n1>She took the chance at once, hurling herself toward the white-glowing, static-hissing screen.</n1> But this was not the television through which she had entered this world. While she was occupied battling the beast, you had replaced it with another device - one that did not lead back to her own dimension, but into the <n1>digital prison crafted by your Guild.</n1> You transport the captured <n1>Sadako</n1> to the section of your laboratory reserved for [[special test subjects.|Bridge]]<img src="IMG\1\samara.png" />
<div style="text-align: center;">Her domain is now bound to <n1>this single device</n1> - her dimension can spread no further. Even if she manifests, she cannot escape this cell. Since you confined her here, she has rarely emerged. Perhaps with a few experiments, you might be able to lure her out.</div>
<div style="text-align: center;"> <div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.0;"> <div style="font-size: 18px; font-weight: bold;">Sadako Tests</div>
<div style="display: flex; justify-content: space-between; margin-top: 12px;"><div style="flex: 1;"><<if $male >= 1>> [[Test 1.0 – First encounter]]<br><<else>><n2>⚠ You need at least one male humanoid</n2><br><</if>><<if $male >= 1>> [[Test 2.0 – Adaptation]]<br><<else>><n2>⚠ You need at least one male humanoid</n2><br><</if>><<if $male >= 1>> [[Test 3.0 – Attitude assessment]]<br><<else>><n2>⚠ You need at least one male humanoid</n2><br><</if>></div></div></div></div>
<div style="text-align: center;"><<if $samara is 6>><div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.0;">
<div style="font-size: 18px; font-weight: bold;">Cell Recordings – Sadako’s Pets</div><div style="display: flex; justify-content: space-between; margin-top: 12px;"><div style="flex: 1;">
[[Recording of the First Encounter]]<br>
[[Recording of Closer Contact – 1.0]]<br>
[[Recording of Closer Contact – 2.0]]<br></div></div></div><</if>>
<div style="text-align: center;">[[Make contact with Sadako]]</div>
[[Back|Ship]]</div>
<<if setup.static is undefined>>
<<run setup.static = new Audio("music/static.mp3")>>
<<run setup.static.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.static.play().catch(()=>{})>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sadtest1.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 10px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.0; text-align: left;">
<b>TEST:</b> 1.0 – First encounter<br>
<b>SUBJECT:</b> <n3>Sadako</n3><br>
<b>DESCRIPTION:</b> The unstable lab environment leaves Sadako uncertain; she does not fully manifest, yet in the presence of a humanoid she dares to emerge. There is a clear longing for company, a pull toward interaction that overrides her hesitation.<br></div>
<div style="text-align: center;">You stop the test because <n1>Sadako consumes all of the humanoid’s life energy.</n1> Thus, the [[humanoid may die.|Sadako]]</div>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sadtest2.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 10px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.0; text-align: left;">
<b>TEST:</b> 2.0 – Second encounter<br>
<b>SUBJECT:</b> <n3>Sadako</n3><br>
<b>DESCRIPTION:</b> Sadako now displays increased confidence. She manifests fully, assuming a stable physical form, and initiates direct interaction with the humanoid subject. She chose the anal version of establishing contact.<br></div>
<div style="text-align: center;">You stop the test because <n1>Sadako consumes all of the humanoid’s life energy.</n1> Thus, the [[humanoid may die.|Sadako]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sadtest2.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 10px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.0; text-align: left;">
<b>TEST:</b> 3.0 – Attitude assessment<br>
<b>SUBJECT:</b> <n3>Sadako</n3><br>
<b>DESCRIPTION:</b> After establishing contact, Sadako consistently assumes a dominant role. She strives to overpower her counterpart, attempting to maintain control and assert authority in every interaction. Regardless of how many or what type of humanoid serves as the test subject, the outcome remains the same.<br></div>
<div style="text-align: center;">You stop the test because <n1>Sadako consumes all of the humanoid’s life energy.</n1> Thus, the [[humanoid may die.|Sadako]]</div><img src="IMG\1\0127.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0127 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+28 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A medium-sized world inhabited by a moderately advanced humanoid society, sustaining a balanced coexistence with its natural environment.</span></div>
<<if $male10 is true>> <div style="text-align: center;"> <a data-passage="10male" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0127">><<if $samara > 3>><img src="IMG\1\sm2.png" />
When you enter the cell, <n1>Sadako</n1> manifests immediately. She is much calmer now - in fact, her demeanor toward you is almost <n1>friendly.</n1> She steps forward without hesitation, perhaps because you helped her carry out her vengeance. If things continue this way, it may even be possible that she won’t need any kind of “mind control” or restraining device for you to persuade her to help you.
<<if $samara is 4>><div style="text-align: center;">[[Show the picture]]</div><</if>>
<<else>><img src="IMG\1\sm0.png" />
<n1>Sadako</n1>, in terms of her abilities, could be an incredibly useful being to you. However, in her current state, she is of no practical use - for if you release her from this cell, she will vanish once more. <n1>Mind control does not work</n1> on her, as she is a cursed entity, so you set your goal to understand her better and, through that, discover a way to either control her or persuade her to aid you. You enter the cell. <n1>Sadako responds to your presence, manifesting before you,</n1> but she refuses to fully leave the screen she perceives as safe. <n1>She fears you</n1> - after all, you were the one who trapped her here.
<<if $samara is 1>><div style="text-align: center;">[[Try to speak with her]]</div><</if>>
<</if>>
<div style="text-align: center;">[[Back|Sadako]]</div>
<<if setup.static is undefined>>
<<run setup.static = new Audio("music/static.mp3")>>
<<run setup.static.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.static.play().catch(()=>{})>>
<<if $samara is 6 >> <<goto "Sadakoserv">><</if>><img src="IMG\1\sm1.png" />
You ask her where she comes from - for you know <n1>she was once a humanoid.</n1> She tries to communicate, but her ghostly whispers are difficult to comprehend. She attempts to tell you the location of her homeworld, but the coordinates are unclear. You will have to attempt to <n1>decode the information.</n1>
<div id="dc13_slotContainer">
<div class="dc13_slotColumn" id="dc13_col1">?</div>
<div class="dc13_slotColumn" id="dc13_col2">?</div>
<div class="dc13_slotColumn" id="dc13_col3">?</div>
<div class="dc13_slotColumn" id="dc13_col4">?</div>
</div>
<div id="dc13_slotMessage">Press SPACE to stop each column (4).</div>
<div style="text-align: center;">[[Back|Sadako]]</div>
<style>
#dc13_slotContainer {
display: flex;
justify-content: center;
gap: 40px;
margin-bottom: 20px;
}
.dc13_slotColumn {
width: 60px; height: 60px;
font-size: 36px;
background-color: #222;
color: #fff;
font-family: monospace;
display: flex; justify-content: center; align-items: center;
border: 2px solid #555; border-radius: 8px;
box-shadow: inset 0 0 10px rgba(255,255,255,.05);
}
#dc13_slotMessage {
text-align: center;
font-weight: bold;
font-size: 18px;
color: white;
min-height: 24px;
}
</style>
<<script>>
(function () {
// ------- EGYEDI PREFIX / ÁLLAPOTVÁLTOZÓK -------
const COL_IDS = ["dc13_col1","dc13_col2","dc13_col3","dc13_col4"];
const MSG_ID = "dc13_slotMessage";
// A siker szekvencia: 0-1-3-2
const TARGET_DIGITS = [0,1,3,2];
// Eltérő tick-idők, hogy a cél számok ne jelenjenek meg egyszerre
const SPEEDS_MS = [350, 390, 420, 380];
let dc13_columns = [[],[],[],[]];
let dc13_intervals = [null,null,null,null];
let dc13_stopped = [false,false,false,false];
let dc13_stopIndex = 0;
let dc13_bound = false;
function inScope() { return document.getElementById(MSG_ID) != null; }
function shuffle(arr){
const a = arr.slice();
for(let i=a.length-1;i>0;i--){
const j = Math.floor(Math.random()*(i+1));
[a[i],a[j]] = [a[j],a[i]];
}
return a;
}
function prepareColumns(){
// minden oszlop: 0..9, de a target csak egyszer szerepeljen, a többi szám marad
const base = [0,1,2,3,4,5,6,7,8,9];
for (let i=0;i<4;i++){
let set = shuffle(base);
// távolítsuk el a targetet, majd EGY példányban szúrjuk vissza random helyre
set = set.filter(n => n !== TARGET_DIGITS[i]);
// választunk egy pozíciót, ami nem ugyanaz mindegyikben
const insAt = 2 + i; // 2,3,4,5 – különböző helyek, hogy ne igazodjanak
set.splice(insAt % set.length, 0, TARGET_DIGITS[i]);
dc13_columns[i] = set;
}
}
function startSpin(){
for (let i=0;i<4;i++){
const el = document.getElementById(COL_IDS[i]);
if (!el) continue;
let idx = 0;
const arr = dc13_columns[i];
const speed = SPEEDS_MS[i % SPEEDS_MS.length];
dc13_intervals[i] = setInterval(()=>{
if (!inScope()){ clearAll(); return; }
const val = arr[idx];
el.textContent = String(val);
// cél számok színesen
el.style.color = (val === TARGET_DIGITS[i]) ? "#a287e6" : "#fff";
idx = (idx + 1) % arr.length;
}, speed);
}
}
function clearAll(){
for (let i=0;i<dc13_intervals.length;i++){
if (dc13_intervals[i]) clearInterval(dc13_intervals[i]);
dc13_intervals[i] = null;
}
}
function stopOne(col){
if (dc13_intervals[col]){
clearInterval(dc13_intervals[col]);
dc13_intervals[col] = null;
dc13_stopped[col] = true;
}
// ha mind a négy megállt, ellenőrzünk
if (dc13_stopped.every(Boolean)){
checkWin();
}
}
function setMsg(html, color, size){
const m = document.getElementById(MSG_ID);
if (!m) return;
m.innerHTML = html;
if (color) m.style.color = color;
if (size) m.style.fontSize = size;
}
function checkWin(){
const vals = COL_IDS.map(id=>{
const el = document.getElementById(id);
return el ? parseInt(el.textContent,10) : NaN;
});
const success = vals[0]===TARGET_DIGITS[0] &&
vals[1]===TARGET_DIGITS[1] &&
vals[2]===TARGET_DIGITS[2] &&
vals[3]===TARGET_DIGITS[3];
if (success){
// maradunk ugyanitt: állapot beállítás + üzenet
// (SugarCube szintaxis: '=' az egyenlőség)
State.variables.samara = 2; // ugyanaz, mint <<set $samara = 2>>
setMsg("<div style='text-align:center;'>You have successfully decoded the information.</div>","white","22px");
} else {
setMsg("Failure. <b>Press R to retry.</b>","#ff4c4c","22px");
}
}
function resetGame(){
clearAll();
dc13_columns = [[],[],[],[]];
dc13_stopped = [false,false,false,false];
dc13_stopIndex = 0;
setMsg("Press SPACE to stop each column (4).","white","18px");
prepareColumns();
startSpin();
}
function onKey(e){
if (!inScope()) return;
if (e.code === "Space"){
e.preventDefault();
if (dc13_stopIndex < 4){
stopOne(dc13_stopIndex);
dc13_stopIndex++;
}
} else if (e.code === "KeyR"){
resetGame();
}
}
// duplakötés elleni védelem
if (window._dc13_bound){
document.removeEventListener("keydown", window._dc13_onKey);
window._dc13_bound = false;
}
window._dc13_onKey = onKey;
document.addEventListener("keydown", onKey, {passive:false});
window._dc13_bound = true;
// passage elhagyásakor takarítás
if (Story && Story.on){
Story.on("passage:before", function(){
clearAll();
if (window._dc13_bound){
document.removeEventListener("keydown", window._dc13_onKey);
window._dc13_bound = false;
}
});
}
// biztonságos indulás
setTimeout(()=>{ prepareColumns(); startSpin(); }, 0);
})();
<</script>>
<<if setup.whis is undefined>>
<<run setup.whis = new Audio("music/whis.mp3")>>
<<run setup.whis.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.whis.play().catch(()=>{})>><img src="IMG\1\0132.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0132 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+28 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Inhabited by humanoids</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A stable, temperate world inhabited by a moderately advanced humanoid civilization.</span></div>
<<if $samara is 2>><div style="text-align: center;"> <a data-passage="0132a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0132">><img src="IMG\1\0132a.png" />
<div style="border: 2px solid #5c2b7a; padding: 10px; color: #5c2b7a; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left;">
<b>AX-Δ ALERT:</b> Curse activity spike detected.
<b>SUBJECT:</b> Sadako containment unit.
<b>STATUS:</b> Instability rising – resonance with homeworld confirmed.
<b>NOTES:</b> Readings reach maximum threshold above an abandoned farmstead. <b>ORIGIN:</b> Site identified as the birthplace of the curse.
</div>
<div style="text-align: center;">[[At this place you land]]</div>
<img src="IMG\1\0132b.png" />
At the edge of the forest stands an abandoned, crumbling building. Beside it, in the middle of the clearing, rises a solitary stone well. The instruments’ displays flare wildly: <n1>Sadako’s activity indicators have doubled.</n1> You step out of the ship and lift the containment device from the cargo hold. Its cold metal casing seems to tremble from the seething energy within…
<img src="IMG\1\0132c.png" />
As you step closer to the well, you catch sight of a humanoid skeleton at its depths. In that moment, <n1>Sadako</n1> - though still imprisoned - fills the air with her voice. A whisper drifts through the silence, chilling and unearthly: <n2>“Love… murderer… revenge…”</n2> Just a few words, yet you understand everything. She was taken, betrayed, and murdered - by someone who was once close to her. Thus she became a curse, and now she seeks only one thing: <n2>vengeance upon her killer</n2>
[[Help her take revenge]]
[[Ignore Sadako’s request|Bridge]]
<<if setup.ghosti is undefined>>
<<run setup.ghosti = new Audio("music/ghosti.mp3")>>
<<run setup.ghosti.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.ghosti.play().catch(()=>{})>>
<<set $samara to 3>><<puzzle 3 3 "IMG/portrait.png" 480 6 "murder">>
<div style="text-align: center;">Scanning its population, hacking into databases, and collecting all available information about the inhabitants. Then you link your <n1>ship’s systems with Sadako’s world.</n1> Through this connection you examine the images, watching closely to see whether Sadako reacts to them. This way, you can identify the person you are searching for.</div>
<<if setup.whis is undefined>>
<<run setup.whis = new Audio("music/whis.mp3")>>
<<run setup.whis.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.whis.play().catch(()=>{})>><img src="IMG\1\0132d.png" />
The target has been found. <n2>The killer.</n2> You don’t just know his face - you now hold every piece of information about him. You know where he lives, where he works… and that he is not at home at this very moment. This opportunity is unique, perfect. Minutes later, you are already inside his house, moving silently through the narrow corridors. You pull out the device that holds Sadako captive and, with cold precision, connect it to the man’s television. This way, Sadako can no longer escape. The device keeps her bound, but through the man’s TV she is able to manifest. At last, she has the means to <n2>fulfill her vengeance.</n2>
<img src="IMG\1\0132e.png" />
The man returns home and switches on the TV, but nothing appears on the screen - only static hissing. Frustrated, he rises from the couch and moves toward the television to try and fix the problem. But at that very moment, [[Sadako lunges at him...]]@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\revenge1.mp4" type="video/mp4">
</video>
@@
She throws him to the ground and pins him down. Yet she does not kill him immediately - why? Her hatred toward the man is indescribable, and still she plays the same cruel game with him as she did with her previous victims.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\revenge2.mp4" type="video/mp4">
</video>
@@
Perhaps it has something to do with what happened to her before <n2>her death?</n2> It is possible that the <n2>man raped her before killing her.</n2> Maybe this is why she became such a corrupted cursed entity, and why she acts in this way.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\revenge3.mp4" type="video/mp4">
</video>
@@
It becomes clear that since her own life ended in such a way, she has chosen this path to deal with the man. You do not intervene - you allow her vengeance to be fulfilled. Slowly, the life drains from the man’s body. In his final moment, however, he recognizes Sadako and calls out her name… <n2>“Samara.”</n2> This is the last word he utters before life leaves him completely. After this, <n2>Sadako seems almost at peace,</n2> quietly returning to her “prison” without resistance. You too are ready to leave, but then something on the wall of the room [[catches your attention.]]<img src="IMG\1\0132g.png" />
A photograph. One that shows <n1>Sadako still in her human form.</n1> Even after all these years, her killer kept the picture. This means their connection truly was close before the murder, though its nature remains unclear. Yet this image may help you understand Sadako better. You decide to take it with you. Perhaps, one day, you might even [[show it to her.|Bridge]]
<<set $samara to 4>><img src="IMG\1\sm3.png" />
Sadako takes the photograph into her hands, and intense emotions overwhelm her. <n1>She is deeply connected to these animals.</n1> Her humanoid memories still linger within her. Perhaps, if you could find two dogs of this same breed, resembling those in the picture, you could make your relationship with her even more trusting.
<div style="text-align: center;">[[Back|Sadako]]</div>
<<set $samara to 5>>
<<if setup.sadd is undefined>>
<<run setup.sadd = new Audio("music/sadd.mp3")>>
<<run setup.sadd.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.sadd.play().catch(()=>{})>><img src="IMG\1\0127a.png" />
As you fly over the small town, you spot a lonely <n1>clinic</n1> at the edge. It is afternoon, and only two remain inside: a <n1>doctor</n1> in her thirties and a young <n1>male</n1> humanoid in his early twenties. A perfect chance to take someone - suspicion will fall on the other. The <n1>doctor</n1> is a known figure, so the anonymous <n1>male</n1> becomes the ideal target. You slip into his <n1>mind</n1> to lead him outside, where your <n1>gravity beam</n1> can lift him away. Yet the connection reveals hidden feelings: he harbors a strong but unspoken desire for the <n1>doctor</n1>, though fear keeps him still. His <n1>illness</n1> is only an excuse - he is perfectly healthy. You consider: why not give him what he longs for first? All it takes is touching the <n1>doctor’s</n1> thoughts as well, nudging her to make the first move.
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<a data-passage="10malea" class="link-internal link-image">
<img src="IMG/control.png" alt="10malea" style="width: 300px;">
</a>
<a data-passage="Grab" class="link-internal link-image">
<img src="IMG/grab.png" alt="Grab" style="width: 300px;">
</a>
</div>
<<set $male10 to false>>
<<set $male += 1>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\10male.mp4" type="video/mp4">
</video>
@@
With a little help from you, the young <n1>male</n1> humanoid’s dream becomes reality. One final kindness before you make him your <n1>subject</n1>. He is granted a few moments of happiness, then you guide him to step outside the <n1>clinic</n1>, where your <n1>beam</n1> swiftly lifts him [[aboard the ship|Bridge]]<<if $pics18 is true>><img src="IMG\1\0083.png" />
As you fly through the asteroid field, you notice a <n3>small ship</n3> quietly moving, hiding behind the meteors. It conceals itself from the world. The type of vessel is not unfamiliar to you, so you know exactly what it is carrying - <n3>a work of art.</n3> A valuable galactic painting. Perhaps it’s worth taking the time to acquire it.
<div style="text-align: center;">[[Shoot down the spaceship|Ast2]]</div>
<<else>><img src="IMG\1\00830.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0083 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−156 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A dense and unstable asteroid field drifting across the sector. Constant collisions and shifting debris make navigation highly dangerous. No biosignatures detected. Mining potential remains uncertain due to extreme instability.</span></div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0128">><img src="IMG\1\0128.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0129 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+22 °C</span>
<b>PASSENGERS:</b> <span style="color:#fff;">Various hybrid and experimental creatures + humanoids</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A research world operated by the <n3>Nexora Syndicate</n3>. Countless hybrid and biological experiments are performed here under heavy security - entry is possible only through costly battle.</span></div>
<div style="text-align: center;">[[Hack the security camera system]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0129">><div id="camOutput"><<CamView>></div>
<div style="text-align: center;">Although you cannot get inside, with a little effort <n1>you can hack into the security camera system,</n1> giving you a glimpse of the experiments taking place within. Choose from the security cameras</div><div class="camRow">
<<link "<img src='IMG/1/cam1_icon.png' class='camIcon' alt='Cam 1'>" >>
<<set $cam = 1>>
<<replace "#camOutput">><<CamView>><</replace>>
<</link>>
<<link "<img src='IMG/1/cam2_icon.png' class='camIcon' alt='Cam 2'>" >>
<<set $cam = 2>>
<<replace "#camOutput">><<CamView>><</replace>>
<</link>>
<<link "<img src='IMG/1/cam3_icon.png' class='camIcon' alt='Cam 3'>" >>
<<set $cam = 3>>
<<replace "#camOutput">><<CamView>><</replace>>
<</link>>
</div><div style="text-align: center;">[[Back|Bridge]]</div>
<style>
.camRow {
display:flex; gap:02px; justify-content:center; align-items:center; flex-wrap:nowrap;
}
.camIcon {
max-width:180px; height:auto; cursor:pointer;
transition: transform .15s ease, filter .15s ease;
}
.camIcon:hover { transform:scale(1.05); filter:brightness(1.1); }
#camOutput { margin-top:16px; text-align:center; }
#camOutput img, #camOutput video {
display:block;
width:100%;
max-width:100%;
height:auto;
margin: 0 auto;
}
</style>
<<if $frame2 is true>><div class="hover-image-wrapper"><img src="IMG/1/0130.png" class="main-image" alt="comics"><a data-passage="0130a" class="hover-link link-internal link-image"><img src="IMG/1/0130a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01300.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0130 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−280 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The frozen remains of an ancient, colossal battle drift in the void - shattered ships, the bones of titans, and the silent echoes of destruction scattered across endless darkness.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG\1\frame1.png" />
What you’ve found may at first resemble the earlier paintings, but it is more than that – it is a <n1>Parallax Frames.</n1> While it does contain paintings, it’s not just a single one: it holds two or even more images, tightly bound together, as if capturing the very moments of a motion. <n1>One is the beginning, the other the end.</n1>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pframes +=1>>
<<set $frame2 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><div id="pf1" class="pf-wrap"> <div class="pf-stage"><img class="pf-a" src="IMG/1/tenframe1.png" alt="frame A"><img class="pf-b" src="IMG/1/tenframe2.png" alt="frame B"></div>
<div style="text-align: center;"><n3>White and Black</n3> - unknown painter <n1>(Stellar Date 32.425Δ)</n1></div><div class="pf-slider-wrap"><input class="pf-slider" type="range" min="0" max="100" value="0" aria-label="Parallax mixer"></div></div>
<div style="text-align: center;">[[Back|pframes]]</div>
<style>
/* Konténer */
.pf{max-width:866px;margin:0 auto 18px;}
/* Képszínpad: grid, hogy a magasságot a kép adja (nem esik össze) */
.pf-stage{
display:grid;
position:relative;
width:100%;
overflow:hidden;
border-radius:10px;
/* Opcionális: fix képarány
aspect-ratio:16/9; */
}
/* Képek: egymásra rétegezve, teljes szélesség */
.pf-stage img{
grid-area:1/1;
width:100%;
height:auto; /* megőrzi az eredeti arányt */
object-fit:cover; /* ha aspect-ratio-t használsz, kitölti torzítás nélkül */
user-select:none;
pointer-events:none;
}
/* Rétegek átúsztatása */
.pf-a{opacity:1; transition:opacity 120ms linear;}
.pf-b{opacity:0; transition:opacity 120ms linear;}
/* Csúszka – középre zárva a kép alatt */
.pf-slider-wrap{display:flex;justify-content:center;margin-top:12px;}
.pf-slider{
width:min(520px,90%);
height:10px;
border-radius:999px;
appearance:none;
-webkit-appearance:none;
outline:none;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
box-shadow:0 0 0 1px rgba(0,0,0,.35) inset, 0 2px 10px rgba(0,0,0,.25);
}
/* --- WebKit (Chrome/Edge/Safari) --- */
.pf-slider::-webkit-slider-runnable-track{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
}
.pf-slider::-webkit-slider-thumb{
-webkit-appearance:none;
width:22px; height:22px; border-radius:50%;
background:#0fe;
border:2px solid rgba(255,255,255,.85);
box-shadow:0 0 0 3px rgba(15,238,255,.25), 0 0 12px rgba(120,70,255,.55);
cursor:pointer;
margin-top:-6px; /* 10px magas track közepére igazít */
}
.pf-slider:active::-webkit-slider-thumb{transform:scale(.96);}
/* --- Firefox --- */
.pf-slider::-moz-range-track{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
}
.pf-slider::-moz-range-progress{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%); /* eltünteti a „kék négyzetet” */
}
.pf-slider::-moz-range-thumb{
width:22px; height:22px; border-radius:50%;
background:#0fe;
border:2px solid rgba(255,255,255,.85);
box-shadow:0 0 0 3px rgba(15,238,255,.25), 0 0 12px rgba(120,70,255,.55);
cursor:pointer;
}
/* Fókuszjelzés billentyűzetnél */
.pf-slider:focus-visible{
box-shadow:0 0 0 3px rgba(24,195,224,.35);
transition:box-shadow .15s;
}
</style>
<<script>>
(function(){
// csak akkor inicializál, amikor a passage tényleg megjelent
$(document).one(':passagedisplay.pf1', function (ev) {
var root = document.getElementById('pf1');
if(!root) return;
var slider = root.querySelector('.pf-slider');
var a = root.querySelector('.pf-a');
var b = root.querySelector('.pf-b');
function update(){
var t = Number(slider.value)/100; // 0..1
a.style.opacity = 1 - t;
b.style.opacity = t;
}
slider.addEventListener('input', update);
slider.addEventListener('change', update);
update();
// ha ismered a képarányt, állítsd (pl. 16/9 vagy 4/3)
// root.querySelector('.pf-stage').style.aspectRatio = '16/9';
});
})();
<</script>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0131.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0131 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+12 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A strange cucumber-shaped world drifting through space. Its bumpy green surface glistens with moisture, giving it an oddly fresh - almost edible - appearance.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0131">>
<<if setup.ubor is undefined>><<run setup.ubor = new Audio("music/ubor.mp3")>><<run setup.ubor.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.ubor.play().catch(()=>{})>>
<<if $hallow3>>
<div style="position:fixed; right:20px; bottom:120px; z-index:9999;">
<a href="javascript:void(0);" onclick="SugarCube.Engine.play('hallow3');">
<img src="IMG/pumpkin.png" alt="pumpkin" style="max-width:120px;">
</a>
</div>
<</if>><img src="IMG\1\0133.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0133 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+28 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Inhabited by humanoid species</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A habitable world with near-perfect living conditions, ruled by an endless flow of information. Dozens of satellites orbit above, feeding constant video streams back to the surface. Here, media itself has become the planet’s true ruler.</span></div>
<div style="text-align: center;"> <a data-passage="0133a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0133">><img src="IMG\1\0133a.png" />
On this planet, everything revolves around television. <n1>The streets, the sky, even space itself are watched by countless cameras.</n1> News broadcasts, talk shows, and film productions flood every corner, making it nearly impossible to do anything unnoticed. Because of this, you don’t even bother trying to capture humanoids here. But that doesn’t mean you can’t have some fun. On the street where you’re standing, a humanoid female reporter is broadcasting live, covering the chaos caused by local gangs for one of the channels. <n1>As you watch, a thought crosses your mind: why not make this live broadcast a little more interesting?</n1> All it would take is using your mind-control ability…
<div style="text-align: center;"> [[Use mind control]]
[[Return to your ship|Bridge]]</div>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\onil.mp4" type="video/mp4">
</video>
@@
To the TV audience, you remain unseen as you slip into the minds of both the humanoid reporter and the gang members. With their thoughts now under your control, you step forward as the true director and begin <n1>“your film.”</n1> What follows is no ordinary broadcast - the spectacle you orchestrate becomes a show unlike anything the viewers [[have ever witnessed.|Bridge]]
<<set $mindIdx = (typeof $mindIdx === "number") ? (($mindIdx % 4) + 1) : 1>>
<<set _roll = $mindIdx>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind1.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind2.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind3.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind4.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 5>>
<!-- üres, nem indul semmi -->
<</switch>>
<<if $comics2a is true>><div class="hover-image-wrapper"><img src="IMG/1/0134.png" class="main-image" alt="comics"><a data-passage="0134a" class="hover-link link-internal link-image"><img src="IMG/1/0134a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01340.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0134 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−274 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The wreck of a <n3>Mechronite</n3> vessel drifts in the cold void. Its corroded hull and shattered fragments float among silent debris - a ghostly monument to battles long forgotten.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0134">><img src="IMG\1\0100d.png" />
The container matches <n1>The Sketcher’s</n1> description, which strongly suggests you’ve found a comic fragment. Only the Sketcher can fully decode it, but the title can already be identified in the code: <n1>A Goblin’s Diary – Part I.</n1> - you’ve uncovered one of its fragments.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $comicsb +=1>>
<<set $comics2a to false>><img src="IMG\1\0135.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0135 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+13 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Not measurable – humanoid</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A colossal <n1>Space Marine</n1> mothership housing the most advanced strain of humanoid life. Its vast, war-forged structure drifts silently through a tranquil region of the galaxy - both awe-inspiring and deeply unsettling.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0135">>
<<if setup.marin is undefined>><<run setup.marin = new Audio("music/marin.mp3")>><<run setup.marin.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.marin.play().catch(()=>{})>><<if $pics13 is true>><div class="hover-image-wrapper"><img src="IMG/1/0136.png" class="main-image" alt="comics"><a data-passage="0136a" class="hover-link link-internal link-image"><img src="IMG/1/0136a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01360.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0136 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−271 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A colossal space squid drifts through the void, its glowing tentacles wrapped around a shattered starship — a silent predator in the frozen dark.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0136">><img src="IMG\1\0135a.png" />
The <n1>Space Marines</n1> represent the highest level of humanoid evolution. With advanced technology, they reshaped their bodies to overcome natural weaknesses. Enhanced strength, resilience, and neural interfaces allow them to function in perfect unity with their power armor and weaponry. Their presence in a peaceful sector is unusual. <n1>They only arrive when the humanoid race is in danger.</n1> But why are they here now? Could it be because of you? Perhaps they are investigating the recent [[humanoid disappearances…|Bridge]]<img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics13 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0102q.png" />
The vendor approaches you with a proposal. He needs your help bringing a new breed - <n3>the Gorthan</n3> - to his farm. This rare goat-hybrid produces a unique kind of milk, which can be turned into entirely new products. For him, it means business. For you, it means… a deal. Naturally, it won’t be free. <n3>Instead of Credar, he offers something far more valuable: a galactic painting,</n3> a rare work of art treasured across the stars. You will find the Gorthan on <n3>Planet 0137.</n3>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $gorthan to true>><img src="IMG\1\0137.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0137 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+22 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Hybrid lifeforms detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">The grassy surface of this dwarf planet is dotted with ancient ruins and weathered stone formations — silent remnants of a once-great civilization.</span></div>
<<if $gorthan is true>><div style="text-align: center;"> <a data-passage="0137a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0137">><img src="IMG\1\0137a.png" />
When you landed on the planet and caught sight of the creature, several things became clear at once. <n3>Judging by its physique, you understood why the merchant desired it</n3> - and why he hadn’t come to capture it himself. This was no mindless beast, but an intelligent and formidable warrior. The merchant would have stood no chance. Now, it even dares to face you with fearless resolve. Yet, when you summon a few of your own creatures to join the battle, its courage falters. <n3>It flees into one of the planet’s ancient ruins</n3> - and without hesitation, you pursue it.
<<puzzle 3 3 "IMG/1/ruin.png" 480 6 "ruin">>
<div style="text-align: center;">Inside, a <n3>labyrinth</n3> awaits you. The creature must know these passages well - that must be why it fled here… or does it? <n3>A scream</n3> echoes through the corridors, followed by strange, unsettling sounds filling the maze. <n3>Has it fallen into a trap?</n3> Whatever the truth, one thing is certain: you must find it, and you must capture it.</div>
<<if setup.ruin is undefined>>
<<run setup.ruin = new Audio("music/ruin.mp3")>>
<<run setup.ruin.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.ruin.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\mimic.mp4" type="video/mp4">
</video>
@@
You found it - it’s trapped. It may have been hiding inside a <n3>mimic chest,</n3> trying to conceal itself from you. That makes capturing it even easier: mimics are simple to disarm, and a creature that can’t flee is even easier to secure. That gives you exactly what the <n3>merchant wanted</n3> - you can now hand the [[creature over.|Bridge]]
<<set $gorthan to false>>
<<set $gorthan1 to true>><img src="IMG\1\0102q2.png" />
What you’ve received may at first resemble the earlier paintings, but it is more than that – it is a <n1>Parallax Frames.</n1> While it does contain paintings, it’s not just a single one: it holds two or even more images, tightly bound together, as if capturing the very moments of a motion. <n1>One is the beginning, the other the end.</n1>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>>
<<set $pmframes to true>>
<<set $gorthan1 to false>><div id="pf1" class="pf-wrap"> <div class="pf-stage"><img class="pf-a" src="IMG/1/milkframe1.png" alt="frame A"><img class="pf-b" src="IMG/1/milkframe2.png" alt="frame B"></div>
<div style="text-align: center;"><n3>Soft as Milk</n3> - unknown painter <n1>(Stellar Date 28.324Δ)</n1></div><div class="pf-slider-wrap"><input class="pf-slider" type="range" min="0" max="100" value="0" aria-label="Parallax mixer"></div></div>
<div style="text-align: center;">[[Back|pframes]]</div>
<style>
/* Konténer */
.pf{max-width:866px;margin:0 auto 18px;}
/* Képszínpad: grid, hogy a magasságot a kép adja (nem esik össze) */
.pf-stage{
display:grid;
position:relative;
width:100%;
overflow:hidden;
border-radius:10px;
/* Opcionális: fix képarány
aspect-ratio:16/9; */
}
/* Képek: egymásra rétegezve, teljes szélesség */
.pf-stage img{
grid-area:1/1;
width:100%;
height:auto; /* megőrzi az eredeti arányt */
object-fit:cover; /* ha aspect-ratio-t használsz, kitölti torzítás nélkül */
user-select:none;
pointer-events:none;
}
/* Rétegek átúsztatása */
.pf-a{opacity:1; transition:opacity 120ms linear;}
.pf-b{opacity:0; transition:opacity 120ms linear;}
/* Csúszka – középre zárva a kép alatt */
.pf-slider-wrap{display:flex;justify-content:center;margin-top:12px;}
.pf-slider{
width:min(520px,90%);
height:10px;
border-radius:999px;
appearance:none;
-webkit-appearance:none;
outline:none;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
box-shadow:0 0 0 1px rgba(0,0,0,.35) inset, 0 2px 10px rgba(0,0,0,.25);
}
/* --- WebKit (Chrome/Edge/Safari) --- */
.pf-slider::-webkit-slider-runnable-track{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
}
.pf-slider::-webkit-slider-thumb{
-webkit-appearance:none;
width:22px; height:22px; border-radius:50%;
background:#0fe;
border:2px solid rgba(255,255,255,.85);
box-shadow:0 0 0 3px rgba(15,238,255,.25), 0 0 12px rgba(120,70,255,.55);
cursor:pointer;
margin-top:-6px; /* 10px magas track közepére igazít */
}
.pf-slider:active::-webkit-slider-thumb{transform:scale(.96);}
/* --- Firefox --- */
.pf-slider::-moz-range-track{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
}
.pf-slider::-moz-range-progress{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%); /* eltünteti a „kék négyzetet” */
}
.pf-slider::-moz-range-thumb{
width:22px; height:22px; border-radius:50%;
background:#0fe;
border:2px solid rgba(255,255,255,.85);
box-shadow:0 0 0 3px rgba(15,238,255,.25), 0 0 12px rgba(120,70,255,.55);
cursor:pointer;
}
/* Fókuszjelzés billentyűzetnél */
.pf-slider:focus-visible{
box-shadow:0 0 0 3px rgba(24,195,224,.35);
transition:box-shadow .15s;
}
</style>
<<script>>
(function(){
// csak akkor inicializál, amikor a passage tényleg megjelent
$(document).one(':passagedisplay.pf1', function (ev) {
var root = document.getElementById('pf1');
if(!root) return;
var slider = root.querySelector('.pf-slider');
var a = root.querySelector('.pf-a');
var b = root.querySelector('.pf-b');
function update(){
var t = Number(slider.value)/100; // 0..1
a.style.opacity = 1 - t;
b.style.opacity = t;
}
slider.addEventListener('input', update);
slider.addEventListener('change', update);
update();
// ha ismered a képarányt, állítsd (pl. 16/9 vagy 4/3)
// root.querySelector('.pf-stage').style.aspectRatio = '16/9';
});
})();
<</script>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0138.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0138 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+34 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Unknown – corrupted anomalies detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A distorted world fractured by violent spatial anomalies. Pixelated glitches and unstable terrain cover the surface, resembling the remnants of a broken simulation.</span></div>
<div style="text-align: center;"> <a data-passage="0138a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0138">>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\pixelww.mp4" type="video/mp4">
</video>
@@
The corruption and deformation seem to affect all life on the planet. Every being bends and reshapes itself to mirror the world’s twisted form. <n1>Humanoids, animals, and other creatures are all transformed</n1> - and, astonishingly, even <n1>werewolves</n1> roam this land. Yet they no longer exist as proud hunters of legend, but as corrupted, crumbling versions of themselves, falling apart into fragments that echo the [[planet’s distorted pulse.|Bridge]]<img src="IMG\1\0139.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0139 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+30 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A thriving humanoid world under the strict protection of the <n1>Space Marines</n1>. Extraction or contact is impossible - their purpose here remains unknown, and that alone is unsettling.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0139">>
<<if $hallow4>>
<div style="position:fixed; right:20px; bottom:120px; z-index:9999;">
<a href="javascript:void(0);" onclick="SugarCube.Engine.play('hallow4');">
<img src="IMG/pumpkin.png" alt="pumpkin" style="max-width:120px;">
</a>
</div>
<</if>><img src="IMG\1\0140.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0140 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+26 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoids and domesticated animals</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A <n1>Space Marine</n1> patrol maintains strict surveillance over this inhabited world. Attempting to capture humanoids here poses extreme risk, though surface landing remains possible. Proceed with caution.</span></div>
<<if $samara is 5>><div style="text-align: center;"> <a data-passage="0140a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0140">><img src="IMG\1\0140a.png" />
On this planet, <n1>humanoids and their animals</n1> live in a unique symbiosis. They exist in peace, within a world where nature and civilization intertwine seamlessly. Countless species of domesticated creatures can be seen here, their diversity unmatched. This makes the place perfect for finding the <n1>two dogs Sadako seeks.</n1> With so many species present, you are almost certain to come across ones resembling them. <n1>But you’d better hurry.</n1> You cannot know how long your ship’s cloaking system will hold - or when the <n1>Space Marines</n1> patrolling in orbit will discover you.
<img src="IMG\1\0140b.png" />
After a quick scan and search you found two perfect matches - <n1>they look exactly like the dogs in the image.</n1> Out here in the open it's easy to lure them to a secluded spot where you can secure them without drawing attention. Two missing dogs likely won't catch the eye of the patrol ship circling above. Everything is set for the operation, but you feel it would be wise to use your cloak a little longer and have a <n1>look around the world</n1> - gather information about how humanoids and other species coexist here.
<div style="text-align: center;">[[Survey the planet]]
[[Capture the two dogs]]</div><img src="IMG\1\0141.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0141 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+24 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Various higher and lower lifeforms</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A vast swamp world steeped in ancient magic. Its mist-shrouded bogs and dark wetlands conceal countless unseen creatures moving beneath the waters.</span></div>
<<if $beka is true>><div style="text-align: center;">[[Back|Bridge]]</div><<else>><div style="text-align: center;"> <a data-passage="0141a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div><</if>>
<<set $lastvisit to "0140">><div id="mapWrap" class="image-map">
<img id="sceneImg" src="IMG/1/0140c.png" alt="scene">
<a data-passage="dh1" class="hotspot" id="hs1"
style="left:15.54%; top:50.60%; width:3.65%; height:6%;"></a>
<a data-passage="dh2" class="hotspot" id="hs2"
style="left:45.08%; top:10%; width:6.23%; height:20.21%;"></a>
<a data-passage="dh3" class="hotspot" id="hs3"
style="left:68.50%; top:50.23%; width:3%; height:16%;"></a>
</div> <div style="text-align: center;"><n1>Use the radar to locate the appropriate sites.</n1></div>
The local humanoids are almost always in the company of their pets. Among these, dog breeds are the closest to them. <n1>Whether on the beach, in the narrow alleys of the city, or even inside their homes, they spend their time together.</n1> If you wish, you may take a closer look at these locations - though it isn’t mandatory; you could always return to [[your ship instead.|Capture the two dogs]]
<style>
.image-map{position:relative;display:inline-block;line-height:0}
.image-map img{display:block;max-width:866px;width:100%;height:auto}
.image-map .hotspot{
position:absolute;display:block;cursor:pointer;background:transparent;
transition:box-shadow .15s, outline .15s;
}
/* Hover jelzés – kék „izzás” */
.image-map .hotspot:hover{
box-shadow:0 0 0 3px rgba(0,140,255,.85) inset, 0 0 18px rgba(0,140,255,.9);
outline:2px solid rgba(0,140,255,.75); outline-offset:-2px;
}
</style>
<img src="IMG\1\0001e.png" />
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>PROCESS: UPLINK</b><br>
<span style="color:#28a745;"><b>STATUS: SUCCESS</b></span><br>
<b>SUMMARY:</b> Dogs successfully elevated via Graviton Beam.<br>
</div>
<div style="text-align: center;">[[Back|Bridge]]</div><<if setup.sugarSound is undefined>>
<<run setup.sugarSound = new Audio("music/sugar.mp3")>>
<<run setup.sugarSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.sugarSound.play().catch(()=>{})>>
<<set $samara to 6>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\dh1.mp4" type="video/mp4">
</video>
@@
The bond between the local <n1>humanoids and their animals may seem unusual to an outside observer at first.</n1> Yet for the inhabitants here, it is an entirely natural part of daily life - otherwise, such a scene could hardly unfold on a beach crowded [[with humanoids.|Survey the planet]]@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\dh2.mp4" type="video/mp4">
</video>
@@
In their dwellings, they <n1>also share their living spaces with their animals,</n1> and it even appears that the pets are <n1>included in larger family events.</n1>Here, there is practically no hierarchy - the animals are regarded as an integral [[part of the family.|Survey the planet]]@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\dh3.mp4" type="video/mp4">
</video>
@@
Although openness and liberalism seem to prevail on this planet at first glance, this woman nevertheless seeks out secluded places with her animal. Or perhaps it is because the animal is [[not truly hers?|Survey the planet]]<img src="IMG\1\0141a.png" />
As you soar through the planet’s atmosphere, your sensors suddenly go haywire. <n1>A strange being comes into view, radiating pure magical energy. You can tell its presence is far from ordinary</n1> - driven by curiosity, you descend and approach to examine it more closely. To your surprise, the creature speaks… and seems eager to converse with you. The creature confesses that <n1>it was once humanoid,</n1> yet its fate was irreversibly altered when <n1>a witch</n1> of this planet cast a curse upon it. Thus it became a twisted frog-being, no longer able to recognize itself in any reflection. The curse decreed a merciless law: <n1>if true love’s kiss found it within a year, its former shape would be restored.</n1> But the kiss never came. Time ebbed away, and when the final moment passed, the spell bound it forever to the marshes. Now, there is no escape. Only a single force keeps it alive: <n1>vengeance,</n1> pulsing within it like the dark energies that simmer in the depths of the swamp.
<img src="IMG\1\0141b.png" />
The creature reveals the <n1>witch’s hut,</n1> hidden deep within the swamp, shrouded in mist. As the sight unfolds before you, a thought rushes through your mind: it lies within <n1>your power to grant the creature its vengeance.</n1> With the strength of mind control, you could easily disarm such a simple sorceress. In truth, the choice is yours - whether to aid the creature in its revenge, or turn away and return to your ship.
[[Help the frog-creature take its revenge]]
[[Return to your ship|Bridge]]<img src="IMG\1\0141c.png" />
With your mind-control power you first <n1>disarmed the witch</n1> - then you cleverly lured her <n1>out of her hut</n1> so she would be vulnerable. After that your role ended - you stepped aside and let the frog-creature carry out its vengeance. It did not hesitate for an instant.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\beka.mp4" type="video/mp4">
</video>
@@
The <n1>frog-creature chose a peculiar way to enact its vengeance</n1> - but if that is what it wanted, so be it. It matters little to you what actually happens; you only played a part in enabling the deed, not in deciding how it would be carried out. You provided the opportunity, [[it chose the method.|Bridge]]
<<set $mindIdx = (typeof $mindIdx === "number") ? (($mindIdx % 4) + 1) : 1>>
<<set _roll = $mindIdx>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind1.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind2.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind3.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind4.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 5>>
<!-- üres, nem indul semmi -->
<</switch>>
<<set $beka to true>><<if $comics2b is true>><div class="hover-image-wrapper"><img src="IMG/1/0142.png" class="main-image" alt="comics"><a data-passage="0142a" class="hover-link link-internal link-image"><img src="IMG/1/0142a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01420.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0142 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−272 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A vast orbital field of drifting debris collected from across the galaxy, slowly circling in perpetual silence along a single frozen trajectory.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0142">><img src="IMG\1\0100d.png" />
The container matches <n1>The Sketcher’s</n1> description, which strongly suggests you’ve found a comic fragment. Only the Sketcher can fully decode it, but the title can already be identified in the code: <n1>A Goblin’s Diary – Part I.</n1> - you’ve uncovered one of its fragments.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $comicsb +=1>>
<<set $comics2b to false>><img src="IMG/1/comics/goblin/1.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/goblin/2.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/goblin/3.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/goblin/4.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/goblin/5.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/goblin/6.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/goblin/7.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/goblin/8.png" style="display:block; margin:0; padding:0; border:0;" />
<div style="text-align: center;"><<return "Back">></div>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\comi.png" />
Here you keep the copies of the comics <n1>The Sketcher</n1> created for you. They were his token of gratitude for the aid you once gave him - helping him recover and preserve his <n1>rare collection.</n1>
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<<if $comicsa is 2>>
<a data-passage="cursepart1" class="link-internal link-image">
<img src="IMG\1\cursepart1.png" alt="cursepart1" style="width: 280px;">
</a>
<</if>>
<<if $comicsb is 2>>
<a data-passage="goblinpart1" class="link-internal link-image">
<img src="IMG\1\goblinpart1.png" alt="goblinpart1" style="width: 280px;">
</a>
<</if>>
<<if $comicsc is 2>>
<a data-passage="unluckypart1" class="link-internal link-image">
<img src="IMG\1\unluckypart1.png" alt="unluckypart1" style="width: 280px;">
</a>
<</if>>
</div>
<div style="text-align: center;">[[Back|Cargo]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<img src="IMG\1\0143.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0143 </span>
<b>TEMPERATURE:</b> <span style="color:#fff;">Not measurable</span>
<b>POPULATION:</b> <span style="color:#fff;">Not measurable</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Another <n3>Void Fracture</n3> - but unlike the others, this one is guarded. <n1>Space Marine</n1> patrols circle its edges, ever watchful. Perhaps these rifts are why this sector feels like a battlefield locked in eternal stalemate.</span></div>
<div style="text-align: center;"> [[Enter the Rift|Rift3]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0143">><img src="IMG\1\0143a.png" />
Using your ship’s cloaking abilities, you managed to slip into the Rift. As before, you found the remnants of a fallen world within - ruins steeped in <n2>demonic power</n2> and corrupted energy. Your sensors detect movement, signs of life. Yet one presence has long since been consumed by the realm of demons… and the other is moments away from <n2>sharing the same fate.</n2>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\demon3.mp4" type="video/mp4">
</video>
@@
A <n2>gigantic creature</n2> and a <n2>fragile humanoid</n2> stand before you. Is this the reason why the Space Marines are here? If so, why have they not entered? Or perhaps their true purpose is simply to keep the creature trapped inside? Maybe… For to fight them here would be nearly impossible, [[for this is their world.|Bridge]]<img src="IMG\1\0144.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0144 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+32 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Wild fauna present</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Traces of non-native humanoids have been detected - a small group currently resides on the surface. However, a <n1>Space Marine</n1> vessel maintains strict orbital control, making any form of capture impossible under current conditions.</span></div>
<<if $gemma is true>> <<else>><div style="text-align: center;"> <a data-passage="0144a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0144">><img src="IMG\1\0144a.png" />
After a short flight, you spot a camp. These must be the humanoids your scanner had detected earlier. Curiosity draws you closer - you wonder what they are doing on a planet where no signs of civilization exist. Could they be attempting to establish a colony? Yet there are far too few of them for such an endeavor...
<img src="IMG\1\0144b.png" />
One of the humanoids noticed you -at first mistaking you for a native of the planet. After a short conversation, you made it clear that you are merely a traveler yourself. The humanoid, whose name is <n3>Gemma,</n3> explained that they too will only remain here for a short time, as they are <n3>shooting a film</n3> and came to this world for that purpose alone. There is a unique creature living on the planet, and it is meant to play the central role in their production. The problem is, they have not yet figured out how to <n3>capture the creature or convince it to participate in the filming.</n3> Still, leaving without footage is not an option - their investors have already poured a great deal of money into the project. You could <n3>easily help them,</n3> since your abilities would make the task far easier. The only question is: <n3>do you want to help?</n3>
<div style="text-align: center;">[[Help with the filming]]
[[Return to your ship|Bridge]]</div>
<<if setup.csics is undefined>>
<<run setup.csics = new Audio("music/csics.mp3")>>
<<run setup.csics.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.csics.play().catch(()=>{})>><img src="IMG\1\0144c.png" />
You decide to help. You tell Gemma that you can bring the creature under your control - they only need to say what they want to see, what the film is about, and you will make the creature behave accordingly. <n1>“A nature documentary?”</n1> you ask as Gemma laughs. Then she replies, unexpectedly: <n3>“No. I’m not here to film it eating, sleeping, or hunting. I want to have sex with him!</n3> - And thus the hunt began.
<div id="mapWrap" class="image-map">
<img id="sceneImg" src="IMG/1/0144c.gif" alt="scene">
<a data-passage="narca" class="hotspot" id="hs2"
style="left:45.08%; top:10%; width:6.23%; height:20.21%;"></a>
</div> <div style="text-align: center;"><n3>Use the radar now and find the creature.</n3></div>You use your radar to track and locate the creature, speeding the process along. Once it’s targeted, you slip into its mind and send a signal - <n3>the cameras spin up, and the filming begins.</n3>
<div style="text-align: center;">[[Abandon the search and return to your ship.|Bridge]]</div>
<style>
.image-map{position:relative;display:inline-block;line-height:0}
.image-map img{display:block;max-width:866px;width:100%;height:auto}
.image-map .hotspot{
position:absolute;display:block;cursor:pointer;background:transparent;
transition:box-shadow .15s, outline .15s;
}
/* Hover jelzés – kék „izzás” */
.image-map .hotspot:hover{
box-shadow:0 0 0 3px rgba(0,140,255,.85) inset, 0 0 18px rgba(0,140,255,.9);
outline:2px solid rgba(0,140,255,.75); outline-offset:-2px;
}
</style>
<<if setup.gemma is undefined>>
<<run setup.gemma = new Audio("music/gemma.mp3")>>
<<run setup.gemma.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.gemma.play().catch(()=>{})>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\narca.mp4" type="video/mp4">
</video>
@@
You’ve secured the creature - it’s under your control now. The signal is sent: <n3>“Take one! Camera rolling!”</n3>Gemma is in position, the crew is ready. Only one last adjustment is needed: a little encouragement from you, and the suppression of its killing instincts through your mind control. What follows surprises you - <n3> you never imagined humanoids would make films like this.</n3> The scene plays out, and after a firm <n3>“Cut! That’s a wrap!”</n3>, everyone is satisfied. They’re proud of the result, and even offer you a place among them. Yet your mission is far greater than this - you can’t stay. Perhaps you’ll cross paths again in the future, but for now, your journey [[takes you elsewhere.|Bridge]]
<<set $gemma to true>><<if $marine is true>><img src="IMG\1\0145.png" />
The warship lies silent. Its <n2>Space Marine crew is dead</n2>, and no distress signal was ever sent to the larger fleet. Whatever happened aboard, no record remains - the crew must have shut down the security systems in their final moments. And so you can vanish without a trace. <n2>The fleet will never know you were here.</n2>
<div style="text-align: center;">[[Back|Bridge]]</div> <<else>> <img src="IMG\1\0145a.png" />
<n2>The alarm blares</n2> - your ship’s defense system warns you: you’ve been targeted. <n2>A Space Marine fighter,</n2> small in size, no more than a dozen soldiers aboard. Even so, avoiding open combat is your best chance. If they sound the alarm, <n2>the entire fleet could arrive</n2>, and alone you would stand no chance. <n2>Allowing them to board is equally unthinkable.</n2> The creatures and humanoids in your custody would trigger the same alarm the moment they were discovered. One option remains: you must avoid direct confrontation at all costs. <n2>Soon, the message from the SM fighter arrives.</n2>
<img src="IMG\1\0145b.png" />
The message arrives in holographic form - fortunately for you, this allows you to see exactly who you are facing. <n1>They fight under the banner of the Space Marines, but they are merely ordinary humanoids, not true Space Marines.</n1> The projected soldier issues a series of demands: identify yourself, state your destination, grant access to your ship, and declare the number of passengers. Questions you neither intend to answer nor to comply with. You need a quick plan to avoid open conflict and vanish without a trace. With <n1>Xal’Rynor’s</n1> help you begin to jam your own communications, <n1>simulating a system fault.</n1> That buys you time.
<img src="IMG\1\0145c.png" />
Then you send a response that appears cooperative but is designed to delay. The false reply reaches the Marines; they wait. Meanwhile you prepare your escape. For an idea has <n1>already taken shape in your mind</n1> - a plan that requires the aid of one of your captive creatures. Yet this is not a being you can simply bend to your will. It is dangerous, wild, and fiercely independent. <n1>To involve it, you must strike a bargain.</n1> An agreement in which both of you take a risk… and whose outcome may decide not only success, but survival itself.
<div style="text-align: center;"><<if $ahri is true>>[[Head to the BIO-LAB]]
<<else>>Without <n2>Ahri</n2>, the mission is [[doomed to fail]]<</if>></div>
<<if setup.alarm is undefined>>
<<run setup.alarm = new Audio("music/alarm.mp3")>>
<<run setup.alarm.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.alarm.play().catch(()=>{})>>
<</if>>
<<set $lastvisit to "0145">>
<img src="IMG\1\0145e.png" />
You walk straight to <n3>Ahri’s cell.</n3> To your surprise she’s pleased to see you, though her enthusiasm may be an act - so you need a bargain before involving her; if she leaves the ship the chance of escape is too great. With no time to lose, you cut to the chase: you ask for her aid, and she may demand something in return. <n3>You require that she board the other ship, draw all attention to herself, use her power to siphon the soldiers’ life force, and then return willingly.</n3> She surprisingly does not ask for freedom - instead <n3>she requests to be included in your future operations and granted more leeway.</n3> That demand is acceptable, especially if she proves her loyalty now.
<img src="IMG\1\0145x.png" />
You attach <n3>safeguards to the bargain:</n3> if she refuses to return, you will strip from her the life you once granted. And if her actions endanger the mission, you will gladly sacrifice everything on the <n3>altar of vengeance.</n3> You state this in a tone that leaves no doubt - cold, merciless terms - and Ahri understands exactly [[what she risks.]]
<<if setup.ahr3 is undefined>>
<<run setup.ahr3 = new Audio("music/ahr3.mp3")>>
<<run setup.ahr3.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.ahr3.play().catch(()=>{})>>
<<set $steps to $steps ? $steps : []>>
<<set $labels to $labels ? $labels : []>>
<<set $step to (typeof $step === 'number') ? $step : 0>><img src="IMG\1\0145d.png" />
When their patience finally ran out, they launched an attack. You could unleash your creatures, and perhaps they might even slaughter the soldiers - <n2>but the fleet’s vengeance is inescapable.</n2> They would pursue you, hunt you down, seize your creatures, and <n2>for the crimes you committed against humanoids, you would be executed.</n2> The mission would end here… or at least, it should have. But you are fortunate: <n2>you can turn back the wheel of time,</n2> erase this event as though it never happened. Still, until Ahri is safely aboard your ship, it would be wise to avoid [[Star Sector 0145|Bridge]]
<img src="IMG\1\0145t.png" />
A passage opened between the two ships. <n3>Ahri</n3> stepped onto the other vessel: first she was scanned, then passed through a security check. Once they confirmed she carried no weapons, she was allowed entry and was led straight to the commander. <n3>There, she immediately began her work.</n3> You were not present; you could not use your mind-control to glimpse the inner proceedings, so you can only imagine the process through which Ahri slowly overcame her opponents. If she proceeds according to what was agreed upon, then the entire <n3>operation unfolds as follows.</n3><<widget "AhriNextRender">><<if $step < $steps.length>><<link $labels[$step]>><<if $step >= $steps.length>><<return>><</if>><<set $step += 1>><<run $('video').each(function(){ this.pause(); })>><<append "#ahriFeed">><div class="block fade"><<include $steps[$step-1]>></div><</append>><<run (function(){
const v = $('#ahriFeed .vid video').last().get(0);
if (v){ v.muted = false; v.play().catch(()=>{}); }
requestAnimationFrame(()=>window.scrollTo({top: document.documentElement.scrollHeight, behavior:'smooth'}));
})()>>
<<replace "#ahriNext">><<AhriNextRender>><</replace>>
<</link>><<else>><span class="the-end">...</span><</if>><</widget>><div id="ahriFeed"></div>
<div id="ahriNext" class="step-links"><<AhriNextRender>></div>
<style>
#ahriFeed, #ahriNext { margin:0 !important; padding:0 !important; }
#ahriFeed { display: flow-root; line-height: 1.34; }
#ahriFeed > :first-child { margin-top:0 !important; }
#ahriFeed > :last-child { margin-bottom:0 !important; }
#ahriFeed .block { margin: .15rem 0 .2rem 0 !important; }
#ahriFeed p { margin: .15rem 0 .15rem 0 !important; }
#ahriFeed .vid video{
max-width:100%; height:auto; display:block;
margin:.12rem auto .18rem !important; border-radius:.4rem;
}
.step-links{ text-align:center; margin:.1rem 0 0 0 !important; padding:0 !important; }
.step-links .macro-link{ margin:0 !important; }
.fade { opacity:0; animation:ahri-fade .45s ease forwards; }
@keyframes ahri-fade { to { opacity:1; } }
</style> <<set $marine to true>>
<<if setup.bizti is undefined>>
<<run setup.bizti = new Audio("music/bizti.mp3")>>
<<run setup.bizti.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.bizti.play().catch(()=>{})>><div class="vid">
<video playsinline controls loop preload="metadata">
<source src="IMG/VID/sma2.mp4" type="video/mp4">
</video>
</div>
<p>Next, she draws <n3>the crew’s attention</n3> - splitting them into small groups so her intent and life-drain remain hidden.</p><div class="vid">
<video playsinline controls loop preload="metadata">
<source src="IMG/VID/sma1.mp4" type="video/mp4">
</video>
</div>
<p>She starts with the captain. <n3>Through him, she gets the ship’s security system shut down,</n3> so nothing is recorded, no entry hits the ship’s log, and your operation won’t reach the fleet.</p><div class="vid">
<video playsinline controls loop preload="metadata">
<source src="IMG/VID/sma3.mp4" type="video/mp4">
</video>
</div>
<p>If this works, <n3>nothing can stop the plan.</n3> The crew rushes gladly to their doom, laughing while they gamble with their lives.</p><div class="vid">
<video playsinline controls loop preload="metadata">
<source src="IMG/VID/sma4.mp4" type="video/mp4">
</video>
</div>
<p>At last, the final soldiers are trapped. Minutes later they fall, and <n3>the ship grows silent, drifting through space.</n3> Now you only hope Ahri keeps her word and returns [[without a fight.]]</p><img src="IMG\1\0145p.png" />
Ahri kept her word: <n3>she returned,</n3> her body still radiating the life force she drained from the soldiers. A powerful aura surrounds her. Thanks to her, you were able to vanish among the stars without a trace. <n3>She has fulfilled her task - now it is your turn.</n3> The time has come to grant her greater freedom. And so you do: today she has proven that she is worthy of your trust. You allow her to leave the BIO-lab and move into [[the crew quarters.|Bridge]]
<<if setup.ggirl is undefined>>
<<run setup.ggirl = new Audio("music/ggirl.mp3")>>
<<run setup.ggirl.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.ggirl.play().catch(()=>{})>>
<<set $ahrinew to true>>
<<set $ahri to false>><img src="IMG\1\ahrinew.png" />
In her newly earned quarters, <n1>Ahri</n1> greets you with complete naturalness, baring herself without <n1>a trace of shame.</n1> From her, such behavior comes as no surprise.
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<a data-passage="AhriA" class="link-internal link-image">
<img src="IMG\1\aska.png" alt="AhriA" style="width: 400px;">
</a>
<a data-passage="AhriB" class="link-internal link-image">
<img src="IMG\1\playa.png" alt="AhriB" style="width: 400px;">
</a>
</div>
<div style="text-align: center;">[[Back|Cruw]]</div>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\1\ahrinew2.png" />
While you kept her in the <n1>BIO-lab,</n1> you never spoke to her. She was nothing more than a subject for your experiments. Now, however, <n1>you are trying a different approach:</n1> to know her not through experiments, but through conversation. In doing so, you hope to better understand not just your <n1>“creation,”</n1> but the being she truly is.
<<set _roll = random(1,3)>><<switch _roll>><<case 1>>
<n1>Ahri</n1> begins to speak softly. She tells you how strange life feels to her - especially the thought that her very <n1>existence is owed only to a laboratory.</n1> In the natural order of things, she might never have come to be at all. The realization fills her with both <n1>curiosity and bitterness.</n1> <<case 2>> <n1>Ahri</n1> confesses that within her rages an unquenchable hunger - <n1>a craving for life force that can never be satisfied.</n1> Yet at times she feels it is not the energy itself she longs for, but the process - the dark ritual through which she extracts that power from her victims. <n1>It is the ecstasy of the act itself that she truly craves.</n1> She admits that perhaps this corrupted desire, this twisted state of mind, is also your doing - born of you, and of the tainted process through which you brought her into existence.<<case 3>> Today, <n1>Ahri</n1> speaks only of simple things. No dark confessions, no hidden cravings - <n1>just the relief of not having to spend her days in the dull,</n1> lifeless cell anymore. In her voice lingers the taste of freedom and a quiet sense of contentment. <</switch>>
<div style="text-align: center;">[[Back|Ahrinew]]</div>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\1\0074b.png" />
<div style="border: 2px solid #25737d; padding: 10px; color: #25737d; font-family: monospace; font-size: 15px; line-height: 1.0; text-align: left;">
<b>PRIMARY SUBJECT:</b> Giant Humanoids (Primitive Civilization)<br>
<b>SECONDARY SUBJECT:</b> Male Humanoid (Standard size)<br><br>
<b>OBSERVATION RESULT:</b> The giants responded with agitation upon encountering the male humanoid subject. No attempts at communication or assessment were made. The giants reacted instinctively, and the subject was trampled to death shortly after arrival.<br><br>
<b style="color:#e74c3c;">FINAL ASSESSMENT:</b> Contact with giant humanoids poses extreme risk.
</div>
<div style="text-align: center;">[[Back|0074]]</div>
<<set $male -= 1>>
<img src="IMG\1\ahrinew2.png" />
Ahri’s insatiable <n1>hunger eventually reaches a point where you must allow her a small release.</n1> Not out of weakness, but to preserve peace - and the fragile trust between you. She does not ask for much, only the presence of a single humanoid. She has <n1>no intention of killing, for she sets her own limits.</n1> Yet even within those bounds, she will drain a measure of life energy… just enough to silence the raging hunger within her, if only for a while.<<set _roll = random(1,5)>><<switch _roll>>
<<case 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\hunger1.mp4" type="video/mp4">
</video>
@@<<case 2>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\hunger2.mp4" type="video/mp4">
</video>
@@<<case 3>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\hunger3.mp4" type="video/mp4">
</video>
@@ <<case 4>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\hunger4.mp4" type="video/mp4">
</video>
@@<</switch>>
You lead the humanoid out of its cell and bring it to <n1>Ahri’s dwelling.</n1> There, you hand it over to her. Your mind control is not needed - she can handle it on her own. Ahri has the ability to sway humanoids at will; in many cases, <n1>her mere presence is enough,</n1> without the need for her spiritual power. When the raging hunger within her is finally eased, she stops - always just in time. The <n1>humanoid</n1> still retains enough life to walk back to its cell on its own.
<div style="text-align: center;">[[Back|Ahrinew]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sadadog1.mp4" type="video/mp4">
</video>
@@
Since you did not wish to exert any influence over the events, you kept your distance during her interactions. Thus, you can only learn what happened by reviewing the recording. As shown, <n1>Sadako perceived the two dogs as her own pets</n1>; however, <n1>to them she was a stranger</n1>, and so they acted in a hostile manner toward her. Even so, <n1>she remained calm and peaceful</n1> with them - for they could do her no real harm. What followed afterward may have been <n1>Sadako’s doing, the manifestation of her spiritual aura</n1>. Yet it could just as easily have been the dogs’ natural behavior - especially if you consider <n1>the way humanoids and dogs interact on their native planet</n1>.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sadadog3.mp4" type="video/mp4">
</video>
@@
For a brief moment, <n1>their bond literally intertwined them</n1>. Yet this physical connection has no true effect on <n1>the spiritual link between them</n1>.
<div style="text-align: center;">[[Back|Sadako]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sadadog2.mp4" type="video/mp4">
</video>
@@
In a short time, the relationship has now become peaceful from both sides. <n1>Sadako continues to see them as her long-lost dogs</n1>, and now <n1>the dogs, in turn, recognize her as their owner</n1>. Even so, <n1>the outcome remains the same as in the first test</n1>. Yet the answer to this question still eludes you.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sadadog5.mp4" type="video/mp4">
</video>
@@
The <n1>physical bond was once again formed between them</n1>, and this time it was broken only when <n1>Sadako chose to return to her own dimension</n1>. Yet even then, their separation came with great difficulty.
<div style="text-align: center;">[[Back|Sadako]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sadadog4.mp4" type="video/mp4">
</video>
@@
After a longer period of time, the <n1>master–pet relationship seems to have fully deepened</n1>. There is now <n1>complete acceptance and harmony</n1>. Because of this, Sadako is able to compel her two animals to perform <n1>extraordinary, unnatural acts</n1>. One such example was successfully captured by the surveillance cameras.
<div style="text-align: center;">[[Back|Sadako]]</div><img src="IMG\1\sadakoserv.png" />
By giving back something that reminded her of her former humanity, you have <n1>bound Sadako to you</n1>. Though your mind control has no effect on her, you can still deploy her during certain missions. For out of gratitude, <n1>she will serve you</n1>.
<div style="text-align: center;">[[Back|Sadako]]</div>
<<if setup.serve is undefined>>
<<run setup.serve = new Audio("music/serve.mp3")>>
<<run setup.serve.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.serve.play().catch(()=>{})>><<if $pics14 is true>><div class="hover-image-wrapper"><img src="IMG/1/0146.png" class="main-image" alt="comics"><a data-passage="0146a" class="hover-link link-internal link-image"><img src="IMG/1/0146a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01460.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0146 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+12 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A floating island suspended in the void, crowned by a colossal ancient tree. The entire landmass is encased within a translucent dome, shimmering faintly as it drifts through endless space.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0146">><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics14 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0147.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0147 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+50 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Multiple species detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Though the surface is scorched and arid, life persists below. Numerous species have adapted to the subterranean depths, thriving in the hidden ecosystems beneath the burning crust.</span></div>
<<if $human19 is true>> <div style="text-align: center;"> <a data-passage="19human" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0147">><img src="IMG\1\0147a.png" />
As you fly across the barren landscape, your eyes catch sight of a <n3>ship buried deep in the sand</n3>. It must have crashed on this planet long ago - but that is not what draws your attention. What unsettles you is the <n3>life swarming around it</n3>. The creatures of the desert encircle the wreck, as if they had uncovered something hidden beneath the sands. You descend closer, only then to discover the true sight: <n3>a humanoid lies unconscious beside the wreckage</n3>.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\siva1.mp4" type="video/mp4">
</video>
@@
The humanoid is <n3>still alive</n3>, and the creatures make no move to kill it - at least not yet. Instead, <n3>they carry the body with them</n3>. You follow their trail, all the way to a cavern that stretches deep beneath the sands of the planet. Down here, <n3>the searing heat of the surface no longer burns</n3>.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\siva2.mp4" type="video/mp4">
</video>
@@
Inside the cavern, the humanoid <n3>regains consciousness</n3> - but by then it is already too late. <n3>Helpless against its captors</n3>, there is no escape without your intervention. Yet even you can offer only another kind of prison. And so, you are faced with a choice: [[will you save the humanoid]] or remain in the shadows and simply [[witness what unfolds?]]<img src="IMG\1\0147b.png" />
Before the situation escalates any further, you step out from your hiding place and <n3>easily disarm the primitive tribal creatures</n3>. Then, in the same manner, you bring the humanoid under your control and <n3>take them with you to your ship</n3>.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human += 1>>
<<set $human19 to false>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\siva3.mp4" type="video/mp4">
</video>
@@
You remain in your hiding place and wait to see which way the situation will escalate. The planet’s <n3>primitive creatures</n3> - who likely know nothing of the wider universe - and an alien lifeform to them: <n3>a humanoid.</n3>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\siva4.mp4" type="video/mp4">
</video>
@@
Yet despite this, events unfold exactly as you expected. <n3>The world is shaped by corruption</n3>. And it seems that <n3>humanoids are its natural catalyst</n3>. For whenever they appear, <n3>corruption rises to the surface within every creature of the universe</n3>.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\siva5.mp4" type="video/mp4">
</video>
@@
It seems the escalation has reached its peak - there is nowhere left for it to go. Thus, you judge that <n3>you have seen all there is to see</n3>, and for that reason, you leave behind both this corrupted [[planet and the humanoid|Bridge]]
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human19 to false>><img src="IMG\1\0148.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0148 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+30 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Tyranids and Humanoids</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A <n3>Tyranid</n3> mothership detected - the reason for <n1>Space Marine</n1> activity in this sector. The vessel has launched an assault, ensnaring a smaller non-military SM ship in its bio-organic grip.</span></div>
<div style="text-align: center;"><<if $male11 is true>>[["Evacuate" the humanoids]]<<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
[[Back|Bridge]]</div>
<<set $lastvisit to "0148">><img src="IMG\1\0148a.png" />
The <n2>Tyranid ship grappled the SM vessel,</n2> tearing open its outer hull and unleashing Tyranid warriors onto the deck. By the time a docking seal is established between your ship and the SM vessel, the enemy is already inside. <n2>Escape is possible only through a narrow corridor.</n2> As you link to the stricken ship, you also connect to its network, and through the onboard communication system you broadcast a message to the survivors: <n2>"Everyone, head for Gate B2! I repeat - everyone, head for Gate B2! Evacuation is only possible there!"</n2> Since you spoke in their language, amidst the chaos the survivors did not stop to question the identity of the unfamiliar voice. Driven by desperation, they all rushed toward <n2>Gate B2.</n2>
<img src="IMG\1\0148b.png" />
By the time they reached the gate, only four were still alive. First came <n2>three male humanoids,</n2> sprinting desperately toward the gate. Judging by their attire, they were <n2>workers from the command center.</n2> They wore no armor. They managed to reach the gate. Moments later, a <n2>female humanoid appeared</n2> - a captain or perhaps a soldier. Her armor and weapon marked her as such. She fired her weapon at the pursuing Tyranids as she ran. <n2>But she was too slow.</n2> By the time she reached the gate, the Tyranids were already upon her. If you took her in, the three unarmed survivors would be lost. And as a fighter, she could cause you trouble. <n1>"Seal the gate!"</n1> you ordered the humanoids, but they protested. <n2>"I cannot! Not until the captain arrives!"</n2> But there was no time. <n1>"If you don’t, we all die!"</n1> you tried to convince the humanoid, yet he was unable to do it. So you were forced to act yourself. So you were forced to leave her behind.
<div id="cg_wrap">
<div id="cg_cells" aria-live="polite">
<span id="cg_c0">?</span><span id="cg_c1">?</span><span id="cg_c2">?</span><span id="cg_c3">?</span><span id="cg_c4">?</span>
</div><div id="cg_msg">Press <b>SPACE</b> when the sequence is <b>CLOSE</b> · Press <b>R</b> to restart</div></div>
You slipped into his mind, ready to issue the <n2>command.</n2> For a brief moment, he would feel no guilt. All that remained was to give <n2>the proper order.</n2>
<style>
#cg_wrap {
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:18px;
margin:10px auto; /* felső és alsó margó */
padding:0; /* extra belső hely nincs */
}
#cg_cells {
display:flex;
gap:22px;
font:700 56px/1 monospace;
letter-spacing:8px;
color:#ff3b3b;
filter:drop-shadow(0 0 6px rgba(255,0,0,.35));
user-select:none;
}
#cg_msg {
font:400 16px/1.4 system-ui,Segoe UI,Roboto,Arial;
color:#bbb;
text-align:center;
}
#cg_msg b { color:#ddd }
.cg_good{ color:#38ff7a !important; filter:drop-shadow(0 0 10px rgba(56,255,122,.6)); }
.cg_muted{ opacity:.55 }
@keyframes cgFlashRed{0%{color:#ff3b3b}50%{color:#ff8787}100%{color:#ff3b3b}}
@keyframes cgShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
</style>
<<script>>
(function () {
const TICK_MS = 400; // ⇦ sebesség (ms)
const MAX_SEQ = 8;
const TARGET = "CLOSE";
const ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// várunk, amíg a cg_cells tényleg a DOM-ban van (kezdő passage-ben is működik)
function afterDomReady(fn){
let tries = 0;
(function wait(){
const row = document.getElementById('cg_cells');
if (row || tries > 30) return fn(); // 30 képkocka ~ fél másodperc
tries++; requestAnimationFrame(wait);
})();
}
afterDomReady(function init(){
const state = { seq:[], idx:0, timer:null, hit:false, done:false };
const row = document.getElementById('cg_cells');
const msg = document.getElementById('cg_msg');
const cells = [...Array(5)].map((_,i)=>document.getElementById('cg_c'+i));
function wordToCells(w){ for(let i=0;i<5;i++) cells[i].textContent = w[i]; }
function randWord(){ let w=""; for(let i=0;i<5;i++) w += ABC[(Math.random()*ABC.length)|0]; return w; }
function buildSeq(){ state.seq = Array.from({length:MAX_SEQ}, randWord); state.seq[(Math.random()*MAX_SEQ)|0] = TARGET; }
function setMsg(t,muted){ msg.textContent=t; msg.classList.toggle('cg_muted', !!muted); }
function tick(){
if (state.idx >= state.seq.length){
clearInterval(state.timer); state.timer=null; state.done=true;
if (!state.hit) setMsg('Missed. Press R to try again.', false);
return;
}
wordToCells(state.seq[state.idx]);
state.idx++;
if (state.idx === state.seq.length) row.classList.add('cg_muted');
}
function start(){
if (state.timer){ clearInterval(state.timer); state.timer=null; }
row.classList.remove('cg_bad','cg_good','cg_muted');
setMsg('Press SPACE on “CLOSE”. Press R to restart.', true);
buildSeq(); state.idx=0; state.hit=false; state.done=false;
tick(); // azonnali első frame
state.timer = setInterval(tick, TICK_MS); // pörgés indul
}
function currentWord(){ return cells.map(s=>s.textContent).join(''); }
function onKey(e){
if (e.code === 'Space'){
e.preventDefault();
if (currentWord() === TARGET && !state.hit){
state.hit = true;
row.classList.add('cg_good');
setMsg('Confirmed. Sealing…', false);
if (state.timer){ clearInterval(state.timer); state.timer=null; }
setTimeout(()=>SugarCube.Engine.play('Tyranid'), 350);
} else {
row.classList.remove('cg_bad'); void row.offsetWidth; row.classList.add('cg_bad');
setMsg('Wrong sequence. Press R to retry.', false);
}
} else if (e.code === 'KeyR'){
e.preventDefault();
start();
}
}
// start + teardown
start();
$(document).on('keydown.cgClose', onKey);
$(document).one(':passageend.cgClose', function () {
$(document).off('keydown.cgClose');
if (state.timer) clearInterval(state.timer);
});
});
})();
<</script>>
<<if setup.walert is undefined>><<run setup.walert = new Audio("music/walert.mp3")>><<run setup.walert.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.walert.play().catch(()=>{})>>
<img src="IMG\1\0148c.png" />
The other two humanoids cried out, <n2>"What are you doing?!"</n2> - but they were powerless. They did not judge, only the refusal of the command had shocked them. The third humanoid had not acted of his own will. It was you who had driven him to it. But that no longer mattered. <n2>The gate sealed shut.</n2> The captain remained on the other side, left to the Tyranids. Her fate was already decided.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\tyranid.mp4" type="video/mp4">
</video>
@@
Though the others believed that with this “sacrifice” they had escaped a cruel fate, the truth was only partial. As they stepped aboard your ship and you left the Tyranids behind, you immediately struck. They were thrown among the rest of the humanoids. <n2>Alive - but their freedom would never return.</n2> Thanks to the Tyranids, however, this “hunt” of yours [[would remain hidden.|Bridge]]
<<set $mindIdx = (typeof $mindIdx === "number") ? (($mindIdx % 4) + 1) : 1>>
<<set _roll = $mindIdx>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind1.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind2.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind3.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind4.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 5>>
<!-- üres, nem indul semmi -->
<</switch>>
<<set $male11 to false>>
<<set $male += 3>><img src="IMG\1\0149.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d4af37;"> 0149 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+15 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A mysterious world encircled by colossal golden rings resembling ancient relics. Glowing runes ignite across their surfaces, pulsing with an ominous crimson light. Approaching them evokes faint, echoing whispers - indecipherable, yet deeply unsettling.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0149">>
<<if setup.pres is undefined>><<run setup.pres = new Audio("music/pres.mp3")>><<run setup.pres.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.pres.play().catch(()=>{})>>
<<if $hallow5>>
<div style="position:fixed; right:20px; bottom:120px; z-index:9999;">
<a href="javascript:void(0);" onclick="SugarCube.Engine.play('hallow5');">
<img src="IMG/pumpkin.png" alt="pumpkin" style="max-width:120px;">
</a>
</div>
<</if>><img src="IMG\1\0150.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0150 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+27 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">This humanoid world is also guarded by the Space Marines. Their presence grows ever stronger across this region of the galaxy — and such an expansion cannot be without reason. Beneath the calm surface, something far greater is unfolding.</span></div>
<div style="text-align: center;">[[Enter the casino]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0150">>
<<if setup.casino && !setup.casino.paused>>
<<run setup.casino.pause()>>
<<run setup.casino.currentTime = 0>>
<</if>>
<<set $b150 to true>>
<img src="IMG\1\0150a.png" />
Rows of machines buzz and clatter, spilling synthetic chimes into the smoky air, while holographic dealers beckon <n3>gamblers of every imaginable species.</n3> The shuffle of cards and the rattle of dice merge with the pulsing rhythm of the machines, as if the casino itself were breathing.
<div style="text-align: center;">[[Play the slot machine]]</div>
<div style="text-align: center;">[[Back|0150]]</div>
<<if setup.casino is undefined>><<run setup.casino = new Audio("music/casino.mp3")>><<run setup.casino.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.casino.play().catch(()=>{})>>
<img src="IMG\1\0150b.png" />
The game is simple - all you have to do is <n3>pull the lever and leave the rest to luck.</n3> The three <n3>reels</n3> begin to spin, their cheerful chime rising as they catch your attention and hold it fast.<div id="slot-container"><div id="slot-reels">
<div class="slot-reel"><img id="reel0" src="IMG/1/reel1.png" alt=""></div>
<div class="slot-reel"><img id="reel1" src="IMG/1/reel2.png" alt=""></div>
<div class="slot-reel"><img id="reel2" src="IMG/1/reel3.png" alt=""></div>
</div><button id="spin-button">SPIN</button><div id="slot-note">Match three identical symbols to win</div><div id="slot-status"></div>
</div><div style="text-align: center;">[[Back|Enter the casino]]</div>
<style>
#slot-container{display:flex;flex-direction:column;align-items:center;gap:16px}
#slot-reels{display:flex;gap:14px}
.slot-reel{width:140px;height:140px;border:3px solid #8e44ad;background:#0d0d0f;
display:flex;align-items:center;justify-content:center;
box-shadow:0 0 12px rgba(142,68,173,.25) inset,0 0 10px rgba(0,0,0,.6)}
.slot-reel img{max-width:100%;max-height:100%}
#spin-button{background:linear-gradient(180deg,#ffcc00,#b88700);border:2px solid #5a3b00;
color:#111;font-weight:800;font-size:18px;padding:10px 26px;border-radius:12px;
cursor:pointer;box-shadow:0 0 14px rgba(255,204,0,.6);letter-spacing:.5px}
#spin-button[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none}
#slot-note{color:#bbb;font:14px/1.3 system-ui,Segoe UI,Roboto,Arial}
#slot-status{color:#888;font:12px/1.3 monospace}
</style>
<<script>>
(function () {
/* ---- Állapotok ---- */
if (!State.variables.reelPrizes) {
State.variables.reelPrizes = { c1Count: 0, c2Count: 0 }; // BasePrize és Jackpot számlálók
}
if (!State.variables.slotCfg) {
State.variables.slotCfg = {
pBiasBase: 0.10,
pBiasStep: 0.025,
pBiasMax: 0.45,
pityAfterBase: 12,
pityStepEvery: 5,
spinsSinceWin: 0
};
}
const symbols = [
"IMG/1/reel1.png", // 0 → BasePrize
"IMG/1/reel2.png", // 1 → BasePrize
"IMG/1/reel3.png", // 2 → BasePrize
"IMG/1/reel4.png" // 3 → Jackpot
];
const tickMs = 80;
const stopTimes = [1200, 1800, 2400];
function afterDomReady(fn){
let tries = 0;
(function wait(){
const btn = document.getElementById("spin-button");
const r0 = document.getElementById("reel0");
if ((btn && r0) || tries > 30) return fn();
tries++; requestAnimationFrame(wait);
})();
}
afterDomReady(init);
function init(){
const btn = document.getElementById("spin-button");
const r0 = document.getElementById("reel0");
const r1 = document.getElementById("reel1");
const r2 = document.getElementById("reel2");
const stat = document.getElementById("slot-status");
function setStatus(t){ if (stat) stat.textContent = t; }
function allComplete(){
const { c1Count, c2Count } = State.variables.reelPrizes;
return (c1Count >= 3 && c2Count >= 1);
}
function refreshButtonState(){
if (allComplete()) {
btn.disabled = true; btn.textContent = "COMPLETED";
setStatus("All rewards claimed (Base Prize: 3/3, Jackpot: 1/1).");
} else {
btn.disabled = false; btn.textContent = "SPIN";
const { c1Count, c2Count } = State.variables.reelPrizes;
setStatus(`Base Prize: ${c1Count}/3 • Jackpot: ${c2Count}/1`);
}
}
refreshButtonState();
function decideFinalResults(){
const cfg = State.variables.slotCfg;
const { c1Count, c2Count } = State.variables.reelPrizes;
const needC1 = (c1Count < 3);
const needC2 = (c2Count < 1);
const dynBias = Math.min(cfg.pBiasBase + cfg.spinsSinceWin * cfg.pBiasStep, cfg.pBiasMax);
const pityLevel = Math.max(0, Math.floor((cfg.spinsSinceWin - cfg.pityAfterBase) / cfg.pityStepEvery));
const pityBoostChance = Math.min(pityLevel * 0.15, 0.60);
const useAssist = (Math.random() < dynBias) || (Math.random() < pityBoostChance);
if (useAssist && (needC1 || needC2) && !allComplete()){
let targetIdx;
if (needC1 && needC2){
targetIdx = (Math.random() < 0.70) ? [0,1,2][rand(0,2)] : 3;
} else if (needC1){
targetIdx = [0,1,2][rand(0,2)];
} else {
targetIdx = 3;
}
return [targetIdx, targetIdx, targetIdx];
}
return [rand(0,3), rand(0,3), rand(0,3)];
}
function rand(min,max){ return (Math.random()*(max-min+1) | 0) + min; }
function spinReels(){
if (btn.disabled) return;
btn.disabled = true;
setStatus("Spinning...");
try {
const audio = new Audio("music/casino1.mp3");
audio.volume = 0.7;
audio.play().catch(()=>{});
} catch(e){ console.warn("Audio error:", e); }
const reels = [r0,r1,r2];
const results = [];
const timers = [];
const finalResults = decideFinalResults();
for (let i=0;i<3;i++){
timers[i] = setInterval(()=>{
const idx = (Math.random()*symbols.length)|0;
reels[i].src = symbols[idx];
results[i] = idx;
}, tickMs);
setTimeout(()=>{
clearInterval(timers[i]);
const forcedIdx = finalResults[i];
reels[i].src = symbols[forcedIdx];
results[i] = forcedIdx;
if (i===2){
setTimeout(()=>checkWin(results), 80);
}
}, stopTimes[i]);
}
}
function checkWin(res){
const [a,b,c] = res;
const allSame = (a===b && b===c);
let won = false;
if (allSame){
if ((a===0 || a===1 || a===2) && State.variables.reelPrizes.c1Count < 3){
State.variables.reelPrizes.c1Count += 1;
State.variables.slotCfg.spinsSinceWin = 0;
setStatus(`Base Prize won (${State.variables.reelPrizes.c1Count}/3)`);
SugarCube.Engine.play("BasePrizeWin");
won = true;
} else if (a===3 && State.variables.reelPrizes.c2Count < 1){
State.variables.reelPrizes.c2Count += 1;
State.variables.slotCfg.spinsSinceWin = 0;
setStatus(`Jackpot won (${State.variables.reelPrizes.c2Count}/1)`);
SugarCube.Engine.play("JackpotWin");
won = true;
}
}
if (!won){
State.variables.slotCfg.spinsSinceWin += 1;
const { c1Count, c2Count } = State.variables.reelPrizes;
setStatus(`No win. Base Prize: ${c1Count}/3 • Jackpot: ${c2Count}/1`);
}
refreshButtonState();
}
btn.addEventListener("click", spinReels, { passive:true });
$(document).one(":passageend.slotMachine", function(){
btn.removeEventListener("click", spinReels);
});
}
})();
<</script>>
<img src="IMG\1\0150w1.png" />
What you have won is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Play the slot machine]]</div>
<<set $pics +=1>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>>
<img src="IMG\1\0150w2.png" />
What you’ve received may at first resemble the earlier paintings, but it is more than that – it is a <n1>Parallax Frames.</n1> While it does contain paintings, it’s not just a single one: it holds two or even more images, tightly bound together, as if capturing the very moments of a motion. <n1>One is the beginning, the other the end.</n1>
<div style="text-align: center;">[[Back|Play the slot machine]]</div>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>>
<<set $casframes to true>>
<div id="pf1" class="pf-wrap"> <div class="pf-stage"><img class="pf-a" src="IMG/1/casframe1.png" alt="frame A"><img class="pf-b" src="IMG/1/casframe2.png" alt="frame B"></div>
<div style="text-align: center;"><n3>After the tutoring session</n3> - unknown painter <n1>(Stellar Date 17.745Δ)</n1></div><div class="pf-slider-wrap"><input class="pf-slider" type="range" min="0" max="100" value="0" aria-label="Parallax mixer"></div></div>
<div style="text-align: center;">[[Back|pframes]]</div>
<style>
/* Konténer */
.pf{max-width:866px;margin:0 auto 18px;}
/* Képszínpad: grid, hogy a magasságot a kép adja (nem esik össze) */
.pf-stage{
display:grid;
position:relative;
width:100%;
overflow:hidden;
border-radius:10px;
/* Opcionális: fix képarány
aspect-ratio:16/9; */
}
/* Képek: egymásra rétegezve, teljes szélesség */
.pf-stage img{
grid-area:1/1;
width:100%;
height:auto; /* megőrzi az eredeti arányt */
object-fit:cover; /* ha aspect-ratio-t használsz, kitölti torzítás nélkül */
user-select:none;
pointer-events:none;
}
/* Rétegek átúsztatása */
.pf-a{opacity:1; transition:opacity 120ms linear;}
.pf-b{opacity:0; transition:opacity 120ms linear;}
/* Csúszka – középre zárva a kép alatt */
.pf-slider-wrap{display:flex;justify-content:center;margin-top:12px;}
.pf-slider{
width:min(520px,90%);
height:10px;
border-radius:999px;
appearance:none;
-webkit-appearance:none;
outline:none;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
box-shadow:0 0 0 1px rgba(0,0,0,.35) inset, 0 2px 10px rgba(0,0,0,.25);
}
/* --- WebKit (Chrome/Edge/Safari) --- */
.pf-slider::-webkit-slider-runnable-track{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
}
.pf-slider::-webkit-slider-thumb{
-webkit-appearance:none;
width:22px; height:22px; border-radius:50%;
background:#0fe;
border:2px solid rgba(255,255,255,.85);
box-shadow:0 0 0 3px rgba(15,238,255,.25), 0 0 12px rgba(120,70,255,.55);
cursor:pointer;
margin-top:-6px; /* 10px magas track közepére igazít */
}
.pf-slider:active::-webkit-slider-thumb{transform:scale(.96);}
/* --- Firefox --- */
.pf-slider::-moz-range-track{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
}
.pf-slider::-moz-range-progress{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%); /* eltünteti a „kék négyzetet” */
}
.pf-slider::-moz-range-thumb{
width:22px; height:22px; border-radius:50%;
background:#0fe;
border:2px solid rgba(255,255,255,.85);
box-shadow:0 0 0 3px rgba(15,238,255,.25), 0 0 12px rgba(120,70,255,.55);
cursor:pointer;
}
/* Fókuszjelzés billentyűzetnél */
.pf-slider:focus-visible{
box-shadow:0 0 0 3px rgba(24,195,224,.35);
transition:box-shadow .15s;
}
</style>
<<script>>
(function(){
// csak akkor inicializál, amikor a passage tényleg megjelent
$(document).one(':passagedisplay.pf1', function (ev) {
var root = document.getElementById('pf1');
if(!root) return;
var slider = root.querySelector('.pf-slider');
var a = root.querySelector('.pf-a');
var b = root.querySelector('.pf-b');
function update(){
var t = Number(slider.value)/100; // 0..1
a.style.opacity = 1 - t;
b.style.opacity = t;
}
slider.addEventListener('input', update);
slider.addEventListener('change', update);
update();
// ha ismered a képarányt, állítsd (pl. 16/9 vagy 4/3)
// root.querySelector('.pf-stage').style.aspectRatio = '16/9';
});
})();
<</script>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\junoq1.png" />
The alarm cuts sharply across the bridge - <n1>the distress signal comes from Juno’s cell</n1>. Without hesitation, you leave the bridge and head for the BIO-Lab. Inside, the sterile silence is broken by <n1>unnerving, irregular sounds</n1>. Juno stands in the center - <n1>her posture tense, her movements alien</n1>. Before you can check her vitals, you’re struck by the sight: <n1>her eyes glint with something inhuman</n1>, and an unfamiliar energy hums in the air around her.
<img src="IMG\1\junoq2.png" />
Her clothes were torn apart, and <n1>she greeted you with a smile</n1> - disturbingly out of place. There was no fear, no hatred, no trace of despair. The sensors showed that <n1>her mind was slipping into a collapse</n1>, the result of confinement, experiments, and endless isolation. Yet the process was not complete. <n1>Her psyche still balanced on thin ice</n1>, moments away from shattering. It was a fragile instant - one that could decide life or death. Or perhaps… offer you an unexpected opportunity. After all, <n1>this crisis had sparked an idea</n1>.
<img src="IMG\1\junoq3.png" />
If Juno’s mind is truly on the verge of collapse, <n1>this is the perfect moment to rewrite it</n1>. You can influence those near you with neural control, but <n1>a soldier under mind-control will never equal one who obeys without it</n1>. Your goal is clear: <n1>to create a soldier</n1> who can be deployed far from you and still carry out your commands. Juno’s psyche is fragile; if you shatter it and rebuild it, you can shape it to your design. But <n1>one mistake would be fatal and irreversible</n1>. That’s why you cannot experiment blindly - you need guidance from someone who can provide precise answers. That someone is the [[Moon Warden|Ship]]
<<set $junoq2 to true>>
<<if setup.walert is undefined>><<run setup.walert = new Audio("music/walert.mp3")>><<run setup.walert.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.walert.play().catch(()=>{})>>
<<if not $junoqd>><<set $junoqd = true>><</if>><img src="IMG\1\junoq4.png" />
Inside, you find the Fountain of Knowledge standing empty - the <n1>Moon Warden</n1> does not guard it. She herself lingers in a remote corner of the sanctuary, preoccupied with <n1>an offering</n1> that someone must have presented to her not long ago. It seems that many travelers and curious adventurers pass through this place.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\rannirid.mp4" type="video/mp4">
</video>
@@
You did not wish to disturb her, yet your presence cannot be hidden from her sight. She turns her attention to you, setting aside the offering, and grants you access to her boundless wisdom. Now you may ask the question for which you have come: <n1>how can you shape your humanoid into an obedient soldier, now that its mind is on the verge of shattering?</n1>
<img src="IMG\1\rinna.png" />
The answer you receive is simpler than you expected: Take her to the <n1>Space Amazon training camp,</n1> located at coordinate <n1>0222.</n1> There, they will grind away the last traces of disobedience. Moreover, her mind will be shaped into the very corruption you require. Thus, your next destination becomes clear - [[Planet 0222.|shrine2]]
<<set $junoq3 to true>>
<<set $junoq2 to false>><img src="IMG\1\0222.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0222 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+28 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Humanoid – Subspecies: <n1>Space Amazons</n1></span>
<b>DESCRIPTION:</b> <span style="color:#fff;">This world serves as the primary training ground of the <n1>Space Amazons</n1>. The fortified complex known as <i>Valyssar Keep</i> stands at its core - the heart of their discipline, strength, and enduring martial legacy.</span></div>
<<if $junoq3 is true>><div style="text-align: center;"> <a data-passage="0222a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0222">><img src="IMG\1\0222a.png" />
Here stands the main <n1>building of the training camp,</n1> a repurposed structure of a long-fallen civilization. Your first step is to the gatehouse, where you state the purpose of your arrival. Once your presence is announced, you are escorted directly to <n1>the camp’s captain</n1> - for your request is no ordinary one. Only those chosen by the Amazons ever set foot here; outsiders are never admitted.
<img src="IMG\1\0222b.png" />
Your request - <n1>to have your humanoid turned into an obedient soldier</n1> - took the captain by surprise. At first, she refused outright. Gazing at Juno’s frail, delicate frame, she deemed <n1>it impossible to shape her into a warrior,</n1> not least because she is no Amazon, and her body and natural gifts differ in every way. But when you explained that you sought not a warrior, but a servant - <n1>one with a corrupted, submissive mind</n1> - the captain’s eyes lit up. For now, it was no longer a burden, but rather a challenge… and perhaps even an amusement. Thus, she agreed to your request, though on a single condition: you <n1>must aid her in something first.</n1>
<img src="IMG\1\0222c.png" />
Unfortunately, one of our <n1>detainees escaped</n1> while you were attempting the transfer. They slipped into the jungle and so far have not been found. The camp asks for your help to track down and capture the fugitive. If you do this, they will begin [[Juno’s training.]]<div id="mapWrap" class="image-map">
<img id="sceneImg" src="IMG/1/0222d.gif" alt="scene">
<a data-passage="szokev" class="hotspot" id="hs3"
style="left:68.50%; top:50.23%; width:3%; height:16%;"></a>
</div> <div style="text-align: center;"><n1>Use the radar to locate the fugitive</n1></div>
With your sensors, <n1>you scan the jungle,</n1> searching for the faintest traces the fugitive may have left behind - <n1>small disturbances, subtle mistakes</n1> that might betray their location. Yet you could also abandon the pursuit… though if you do, you can no longer [[count on their help|Bridge]]
<style>
.image-map{position:relative;display:inline-block;line-height:0}
.image-map img{display:block;max-width:866px;width:100%;height:auto}
.image-map .hotspot{
position:absolute;display:block;cursor:pointer;background:transparent;
transition:box-shadow .15s, outline .15s;
}
/* Hover jelzés – kék „izzás” */
.image-map .hotspot:hover{
box-shadow:0 0 0 3px rgba(0,140,255,.85) inset, 0 0 18px rgba(0,140,255,.9);
outline:2px solid rgba(0,140,255,.75); outline-offset:-2px;
}
</style>
<<if setup.csics is undefined>>
<<run setup.csics = new Audio("music/csics.mp3")>>
<<run setup.csics.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.csics.play().catch(()=>{})>><img src="IMG\1\0222e.png" />
It is a stolen blade from the camp that <n1>seals her fate</n1> - for with a careless movement, sunlight glints across the steel. To your sensors, that fleeting <n1>flash is enough to reveal her position.</n1> Within minutes, you close in and capture her. The fugitive is delivered back into the hands of the <n1>Amazons,</n1> who will now see to her rightful [[PUNISHMENT]] The captain approaches you with gratitude, assuring you she will keep her word. <n1>She takes Juno from your care and begins her training.</n1> As agreed, you will receive a <n1>message every five days,</n1> informing you of [[her progress.|Bridge]]
<<set $junoq3 to false>>
<<set $juno2 to false>>
<<set $junoq4 to true>>
<<set $traning to 1>>
<<set $traninga to 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\prison.mp4" type="video/mp4">
</video>
@@
As you watch the ‘punishment’ inflicted upon the fugitive, a realization dawns on you - these <n1>Amazons are not ordinary humanoids.</n1> Their kind does not divide into male and female; every one of them is <n1>hermaphroditic.</n1> This knowledge changes much. Now you are certain that here, in this place, <n1>Juno</n1> will indeed receive the kind of training you had [[envisioned for her.|szokev]]
A video message has arrived from <n1>Planet 0222.</n1> Surely, it contains the promised details about <n1>Juno’s training.</n1>
<<if $traninga is 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\traning1.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #2e86c1; padding: 12px; color: #ffffff; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left; background-color: #0b0c10;"><div style="text-align: left; font-weight: bold; color: #c39bd3;">
Subject: Juno’s Training</div><div style="text-align: justify; margin-top: 8px; margin-bottom: 8px; color: #ffffff;">The training has begun. Juno has settled into her quarters and has been assigned a roommate, who, under my orders, will ensure that Juno’s state of corruption never diminishes.</div><div style="text-align: right; font-style: italic; margin-top: 8px; color: #c39bd3;">Respectfully, Captain Brigitte</div></div> <</if>> <<if $traninga is 2>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\traning2.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #2e86c1; padding: 12px; color: #ffffff; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left; background-color: #0b0c10;"><div style="text-align: left; font-weight: bold; color: #c39bd3;">
Subject: Juno’s Training</div><div style="text-align: justify; margin-top: 8px; margin-bottom: 8px; color: #ffffff;">Today, Juno accompanied me as my personal assistant to a meeting. Here she was able to practice every aspect of following orders. I also made sure that she would not be allowed to relax even in her free time. The recording proved that we take her training very seriously.</div><div style="text-align: right; font-style: italic; margin-top: 8px; color: #c39bd3;">Respectfully, Captain Brigitte</div></div> <</if>> <<if $traninga is 3>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\traning3.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #2e86c1; padding: 12px; color: #ffffff; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left; background-color: #0b0c10;"><div style="text-align: left; font-weight: bold; color: #c39bd3;">
Subject: Juno’s Training</div><div style="text-align: justify; margin-top: 8px; margin-bottom: 8px; color: #ffffff;">“After our most recent journey together, I decided to take her training entirely under my own supervision, and so today I moved her into my quarters. From now on, her training continues around the clock.</div><div style="text-align: right; font-style: italic; margin-top: 8px; color: #c39bd3;">Respectfully, Captain Brigitte</div></div> <</if>><<if $traninga is 4>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\traning4.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #2e86c1; padding: 12px; color: #ffffff; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left; background-color: #0b0c10;"><div style="text-align: left; font-weight: bold; color: #c39bd3;">
Subject: Juno’s Training</div><div style="text-align: justify; margin-top: 8px; margin-bottom: 8px; color: #ffffff;">Everything is proceeding according to plan - or rather, not quite. To be honest, I am enjoying all of this far more than I expected. In the future, I may have to allow more outsiders into the training camp.</div><div style="text-align: right; font-style: italic; margin-top: 8px; color: #c39bd3;">Respectfully, Captain Brigitte</div></div> <</if>><<if $traninga is 5>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\traning5.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #2e86c1; padding: 12px; color: #ffffff; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left; background-color: #0b0c10;"><div style="text-align: left; font-weight: bold; color: #c39bd3;">
Subject: Juno’s Training</div><div style="text-align: justify; margin-top: 8px; margin-bottom: 8px; color: #ffffff;">Today it seemed as though something of her old self had awakened - perhaps a final attempt, a last struggle. She disobeyed orders. However, after the sergeant’s punishment, that resistance vanished completely.</div><div style="text-align: right; font-style: italic; margin-top: 8px; color: #c39bd3;">Respectfully, Captain Brigitte</div></div> <</if>><<if $traninga is 6>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\traning6.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #2e86c1; padding: 12px; color: #ffffff; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left; background-color: #0b0c10;"><div style="text-align: left; font-weight: bold; color: #c39bd3;">
Subject: Juno’s Training</div><div style="text-align: justify; margin-top: 8px; margin-bottom: 8px; color: #ffffff;">We raised the stakes and entered the final phase. Her obedience and compliance are now flawless. In fact, we have reached the stage of corruption where she herself asks for and craves her ‘punishment.’ At this point, the word hardly seems fitting anymore.
P.S.: I will not send any more messages - I shall report again only at the very end of the process.
</div><div style="text-align: right; font-style: italic; margin-top: 8px; color: #c39bd3;">Respectfully, Captain Brigitte</div></div> <</if>> <<if $traninga is 7>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\traning7.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #2e86c1; padding: 12px; color: #ffffff; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left; background-color: #0b0c10;"><div style="text-align: left; font-weight: bold; color: #c39bd3;">
Subject: Juno’s Training</div><div style="text-align: justify; margin-top: 8px; margin-bottom: 8px; color: #ffffff;">With this, her training is complete. As you can see, Juno is now fully prepared both physically and mentally. She will obey every command as a loyal soldier, and you need not worry about any physical limitations standing in her way. Her mind is stable now - yet sufficiently corrupted. We will send her back to you later today.
P.S.: It has been a long time since I enjoyed training a recruit this much. </div><div style="text-align: right; font-style: italic; margin-top: 8px; color: #c39bd3;">Respectfully, Captain Brigitte</div></div> <<set $junoq4 to false>> <<set $JunoS to true>> <</if>>
<div style="text-align: center;"><<return "Back">></div>
<<set $traning to 1>>
<<set $message to false>>
<<set $traninga += 1>>
<<if $Juno033 is true>> <<goto "message2">><</if>><img src="IMG\UI1A.png" /><<set $codeNum to $codeNum or 0>><<set $codeHistory to $codeHistory or []>><<run window.updateCodeDisplay = function() {
const code = String(State.variables.codeNum).padStart(4, "0");
const seen = State.variables.codeHistory.includes(code);
const css = seen ? "code-display visited" : "code-display";
return '<span class="' + css + '">' + code + '</span>';
}>><<set _codeString to String($codeNum).padStart(4, "0")>><<if !$codeHistory.includes(_codeString)>>
<<run $codeHistory.push(_codeString)>><</if>><div style="display: flex; justify-content: center; align-items: center; gap: 2em; text-align: center;">
<div><span class="code-button"><<link "-10">><<set $codeNum to Math.max(0, $codeNum - 10)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</link>></span><br><span class="code-button"><<link "+10">><<set $codeNum to Math.min(9999, $codeNum + 10)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>> <</link>></span></div><div id="codeDisplay"><span id="codeValue"><<= window.updateCodeDisplay()>></span></div><div><span class="code-button"><<link "-1">><<set $codeNum to Math.max(0, $codeNum - 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>><</link>></span><br><span class="code-button"><<link "+1">><<set $codeNum to Math.min(9999, $codeNum + 1)>><<replace "#codeValue">><<= window.updateCodeDisplay()>><</replace>> <</link>></span></div>
</div><div style="text-align: center; margin-top: 10px;">
[[HYPERSPACE JUMP->check_answer]]<br>
[[Back|Ship]]
</div>
<<script>>
(function(){
// előző eseményfigyelő eltávolítása
if (window._codeKeyHandler) {
document.removeEventListener("keydown", window._codeKeyHandler, {capture:true});
window._codeKeyHandler = null;
}
// csak itt élő key handler
window._codeKeyHandler = function(e) {
// HA MÁR NEM BridgeWASD-BAN VAGYUNK, AZONNAL TAKARÍTUNK ÉS KILÉPÜNK
if (State.passage !== "BridgeWASD") {
document.removeEventListener("keydown", window._codeKeyHandler, {capture:true});
window._codeKeyHandler = null;
return;
}
// inputmezőn ne avatkozzunk közbe
const a = document.activeElement;
if (a && a.tagName && a.tagName.toLowerCase() === "input") return;
let d = 0;
const k = (e.key || "").toLowerCase();
switch (k) {
case "w": d = 1; break;
case "s": d = -1; break;
case "d": d = 10; break;
case "a": d = -10; break;
case " ":
case "space":
e.preventDefault();
e.stopPropagation();
Engine.play("check_answer");
return;
}
if (d !== 0) {
e.preventDefault();
e.stopPropagation();
const n = Math.max(0, Math.min(9999, State.variables.codeNum + d));
State.variables.codeNum = n;
if (typeof window.updateCodeDisplay === 'function') {
const el = document.getElementById("codeValue");
if (el) el.innerHTML = window.updateCodeDisplay();
}
}
};
// bindeljük capture-ben, hogy megelőzzön más globális space-handlert
document.addEventListener("keydown", window._codeKeyHandler, {passive:false, capture:true});
// plusz biztos takarítás navigáció előtt
if (Story && Story.on) {
Story.on("passage:before", function(){
if (window._codeKeyHandler) {
document.removeEventListener("keydown", window._codeKeyHandler, {capture:true});
window._codeKeyHandler = null;
}
});
}
})();
<</script>>
<<if $tutbridge0 is true>> <<goto "tutorialbridge1">> <</if>><<if $tutbridge is true>> <<goto "tutorialbridge2">> <</if>><<if $abridge is true>> <<goto "abridge">> <</if>><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = 0.4>><</if>><<run setup.clickSound.play().catch(()=>{})>> <img src="IMG\ship.png" />
<div style="text-align: center;">Xal’Rynor is the <n1>pinnacle of Zenthari technology</n1> - a living machine that doesn’t just follow commands, it understands them. It breathes, it calculates, it decides - the perfect companion for a hunt among the stars.</div> <div style="display:flex; justify-content:center; gap:10px; margin-top:10px; flex-wrap:wrap;"><a data-passage="Bridge" class="link-internal link-image">
<img src="IMG/1/icon1.png" alt="Bridge" style="width:150px;">
</a>
<a data-passage="Lab" class="link-internal link-image">
<img src="IMG/1/icon2.png" alt="Lab" style="width:150px;">
</a>
<a data-passage="Cruw" class="link-internal link-image">
<img src="IMG/1/icon3.png" alt="Cruw" style="width:150px;">
</a>
<a data-passage="Cell" class="link-internal link-image">
<img src="IMG/1/icon4.png" alt="Cell" style="width:150px;">
</a>
<a data-passage="Cargo" class="link-internal link-image">
<img src="IMG/1/icon5.png" alt="Cargo" style="width:150px;">
</a></div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<<set $tutorial to false>>
<<set $tutbridge to false>>
<<set $tutor to true>>
<<set $codeNum to 0>>
<<set $tutbridge0 to false>>
<<set $horse to true>>
<<set $kentaur to true>><style>
.ctc-wrap { margin:0 !important; padding:0 !important; }
.ctc-wrap * { margin:0; box-sizing:border-box; }
.ctc-stage{ display:grid; place-items:center; margin:0; }
/* Vászon: max 1260px széles, 21:9 képarány; belső felbontás 1260x540 */
#ctc-canvas{
background:#000;
border:4px solid #0b2430;
width:min(1260px,100%);
aspect-ratio:21/9;
height:auto;
image-rendering:optimizeSpeed;
display:block;
}
.ctc-hud{
color:#fff;
font-family:Rajdhani, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
display:flex; flex-direction:column;
gap:4px; margin-top:6px;
line-height:1.25; text-align:center;
}
.ctc-hud .time{ font-weight:700; font-size:18px; }
.ctc-hud .instr{ font-size:16px; opacity:.95; }
</style><div class="ctc-wrap" id="ctc-root">
<div class="ctc-stage">
<canvas id="ctc-canvas" width="1260" height="540"></canvas>
</div>
<div class="ctc-hud"><div class="time">Time remaining before it flees: <span id="ctc-time">15</span>s</div><div class="instr">Disable the fleeing ship's thrusters. Use <strong>WASD</strong> or <strong>Arrow keys</strong> to aim and intercept.</div></div></div>
<script>
(function(){
// ===== Single-instance guard & cleanup =====
(function ensureSingleton(){
if (!window.__CTC) window.__CTC = {};
const inst = window.__CTC.instance;
if (inst && typeof inst.cleanup === 'function') {
try { inst.cleanup(); } catch(e){}
}
})();
// ===== Basic engine goto (no alerts, cross-browser) =====
function gotoPassage(name){
var target = String(name || "");
setTimeout(function(){
try { if (window.SugarCube && SugarCube.Engine && typeof SugarCube.Engine.play === 'function') { SugarCube.Engine.play(target); return; } } catch(e){}
try { if (window.Engine && typeof Engine.play === 'function') { Engine.play(target); return; } } catch(e){}
try { window.location.hash = '#passage-' + encodeURIComponent(target); } catch(e){}
}, 0);
}
// ===== Polyfills (light) =====
if (!window.performance || !performance.now){
window.performance = window.performance || {};
performance.now = function(){ return Date.now(); };
}
// ===== Game config =====
var TIME_LIMIT = 15;
var PLAYER_RADIUS = 14;
var SHIP_RADIUS = 18;
var SHIP_BASE_SPEED = 120;
var SHIP_FLEE_MULT = 2.4;
var COLLIDE_DIST = PLAYER_RADIUS + SHIP_RADIUS - 2;
var CANVAS_W = 1260, CANVAS_H = 540;
// ===== DOM =====
var canvas = document.getElementById('ctc-canvas');
var timeLbl = document.getElementById('ctc-time');
if (!canvas || !canvas.getContext){ return; }
var ctx = canvas.getContext('2d');
// ===== State =====
var lastT = performance.now();
var timeLeft = TIME_LIMIT;
var rafId = null;
var running = true;
var player = { x: CANVAS_W/2, y: CANVAS_H/2 };
var ship = { x: CANVAS_W*0.75, y: CANVAS_H*0.55, vx:0, vy:0, speed: SHIP_BASE_SPEED };
// ===== Input (with removeable handlers) =====
var keys = Object.create(null);
function onKeyDown(e){ keys[(e.key||'').toLowerCase()] = true; }
function onKeyUp(e){ keys[(e.key||'').toLowerCase()] = false; }
window.addEventListener('keydown', onKeyDown);
window.addEventListener('keyup', onKeyUp);
// ===== Utils =====
function clamp(v,a,b){ return Math.max(a, Math.min(b, v)); }
function dist(ax,ay,bx,by){ var dx=ax-bx, dy=ay-by; return Math.hypot ? Math.hypot(dx,dy) : Math.sqrt(dx*dx+dy*dy); }
function drawBackground(){
ctx.fillStyle = '#05070a';
ctx.fillRect(0,0,CANVAS_W,CANVAS_H);
ctx.fillStyle = 'rgba(255,255,255,0.035)';
for(var i=0;i<80;i++){
var x=(i*53)%CANVAS_W, y=(i*91)%CANVAS_H;
ctx.fillRect(x,y,1,1);
}
ctx.strokeStyle = 'rgba(158,216,255,0.06)';
ctx.lineWidth = 1;
var step = 60;
ctx.beginPath();
for(var gx=0; gx<=CANVAS_W; gx+=step){ ctx.moveTo(gx,0); ctx.lineTo(gx,CANVAS_H); }
for(var gy=0; gy<=CANVAS_H; gy+=step){ ctx.moveTo(0,gy); ctx.lineTo(CANVAS_W,gy); }
ctx.stroke();
}
function drawPlayer(){
ctx.save(); ctx.translate(player.x, player.y);
ctx.beginPath(); ctx.strokeStyle='#ffffff'; ctx.lineWidth=2;
ctx.arc(0,0,PLAYER_RADIUS,0,Math.PI*2); ctx.stroke();
ctx.beginPath();
ctx.moveTo(-PLAYER_RADIUS-6,0); ctx.lineTo(-6,0);
ctx.moveTo( PLAYER_RADIUS+6,0); ctx.lineTo( 6,0);
ctx.moveTo(0,-PLAYER_RADIUS-6); ctx.lineTo(0,-6);
ctx.moveTo(0, PLAYER_RADIUS+6); ctx.lineTo(0, 6);
ctx.stroke(); ctx.restore();
}
function drawShip(){
ctx.save(); ctx.translate(ship.x, ship.y);
ctx.beginPath(); ctx.fillStyle='rgba(255,160,60,0.08)';
ctx.arc(0,0,SHIP_RADIUS+10,0,Math.PI*2); ctx.fill();
ctx.beginPath(); ctx.fillStyle='#ff9a2a';
ctx.arc(0,0,SHIP_RADIUS,0,Math.PI*2); ctx.fill();
ctx.strokeStyle='#402200'; ctx.lineWidth=2; ctx.stroke();
ctx.restore();
}
function flashColor(color, frames, cb){
var f=0;
(function _flash(){
ctx.fillStyle = color;
ctx.globalAlpha = 0.18 * (1 - f/frames);
ctx.fillRect(0,0,CANVAS_W,CANVAS_H);
ctx.globalAlpha = 1;
f++;
if (f <= frames) requestAnimationFrame(_flash);
else if (cb) cb();
})();
}
// ===== Core Loop =====
function step(now){
if(!running) return;
var dt = Math.min(0.05, (now - lastT) / 1000);
lastT = now;
// player move
var speedKB = 280, mvx=0, mvy=0;
if(keys['arrowleft']||keys['a']) mvx=-1;
if(keys['arrowright']||keys['d']) mvx= 1;
if(keys['arrowup']||keys['w']) mvy=-1;
if(keys['arrowdown']||keys['s']) mvy= 1;
if(mvx||mvy){
var len=Math.sqrt(mvx*mvx+mvy*mvy)||1;
player.x += (mvx/len)*speedKB*dt;
player.y += (mvy/len)*speedKB*dt;
player.x = clamp(player.x, 0, CANVAS_W);
player.y = clamp(player.y, 0, CANVAS_H);
}
// AI
var d = dist(player.x, player.y, ship.x, ship.y);
var targetVX=0, targetVY=0;
if(d < 240){
targetVX = ship.x - player.x;
targetVY = ship.y - player.y;
var len2 = Math.sqrt(targetVX*targetVX + targetVY*targetVY) || 1;
var flee = (d < 90) ? SHIP_FLEE_MULT : 1.35;
targetVX = (targetVX/len2)*ship.speed*flee;
targetVY = (targetVY/len2)*ship.speed*flee;
} else {
targetVX = ship.vx + (Math.random()-0.5)*12;
targetVY = ship.vy + (Math.random()-0.5)*12;
var len3 = Math.sqrt(targetVX*targetVX + targetVY*targetVY) || 1;
targetVX = (targetVX/len3)*ship.speed*0.7;
targetVY = (targetVY/len3)*ship.speed*0.7;
}
ship.vx += (targetVX - ship.vx)*6*dt;
ship.vy += (targetVY - ship.vy)*6*dt;
ship.x += ship.vx*dt;
ship.y += ship.vy*dt;
// bounds
if(ship.x < 20){ ship.x=20; ship.vx=Math.abs(ship.vx)*0.85; }
if(ship.x > CANVAS_W-20){ ship.x=CANVAS_W-20; ship.vx=-Math.abs(ship.vx)*0.85; }
if(ship.y < 20){ ship.y=20; ship.vy=Math.abs(ship.vy)*0.85; }
if(ship.y > CANVAS_H-20){ ship.y=CANVAS_H-20; ship.vy=-Math.abs(ship.vy)*0.85; }
// win
if(d <= COLLIDE_DIST){
running=false; if(rafId) cancelAnimationFrame(rafId);
// villanás tetszés szerint kikapcsolható: csak gotoPassage('Winner') is elég
flashColor('#88ff88', 8, function(){ gotoPassage('Winner'); });
return;
}
// time
timeLeft -= dt;
if (timeLbl) timeLbl.textContent = Math.ceil(Math.max(0, timeLeft));
if(timeLeft <= 0){
running=false; if(rafId) cancelAnimationFrame(rafId);
flashColor('#ff6666', 10, function(){ gotoPassage('GameOver'); });
return;
}
// render
drawBackground();
drawShip();
drawPlayer();
rafId = requestAnimationFrame(step);
}
// ===== Start & store instance for safe re-entry =====
lastT = performance.now();
rafId = requestAnimationFrame(step);
// expose cleanup so next run can dispose the previous safely
window.__CTC.instance = {
cleanup: function(){
try { running = false; } catch(e){}
try { if (rafId) cancelAnimationFrame(rafId); } catch(e){}
try { window.removeEventListener('keydown', onKeyDown); } catch(e){}
try { window.removeEventListener('keyup', onKeyUp); } catch(e){}
}
};
})();
</script>
<<set $pics15 to false>><style>
.ctc-wrap { margin:0 !important; padding:0 !important; }
.ctc-wrap * { margin:0; box-sizing:border-box; }
.ctc-stage{ display:grid; place-items:center; margin:0; }
/* Vászon: max 1260px széles, 21:9 képarány; belső felbontás 1260x540 */
#ctc-canvas{
background:#000;
border:4px solid #0b2430;
width:min(1260px,100%);
aspect-ratio:21/9;
height:auto;
image-rendering:optimizeSpeed;
display:block;
}
.ctc-hud{
color:#fff;
font-family:Rajdhani, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
display:flex; flex-direction:column;
gap:4px; margin-top:6px;
line-height:1.25; text-align:center;
}
.ctc-hud .time{ font-weight:700; font-size:18px; }
.ctc-hud .instr{ font-size:16px; opacity:.95; }
</style><div class="ctc-wrap" id="ctc-root">
<div class="ctc-stage">
<canvas id="ctc-canvas" width="1260" height="540"></canvas>
</div>
<div class="ctc-hud"><div class="time">Time remaining before it flees: <span id="ctc-time">15</span>s</div><div class="instr">Disable the fleeing ship's thrusters. Use <strong>WASD</strong> or <strong>Arrow keys</strong> to aim and intercept.</div></div></div>
<script>
(function(){
// ===== Single-instance guard & cleanup =====
(function ensureSingleton(){
if (!window.__CTC) window.__CTC = {};
const inst = window.__CTC.instance;
if (inst && typeof inst.cleanup === 'function') {
try { inst.cleanup(); } catch(e){}
}
})();
// ===== Basic engine goto (no alerts, cross-browser) =====
function gotoPassage(name){
var target = String(name || "");
setTimeout(function(){
try { if (window.SugarCube && SugarCube.Engine && typeof SugarCube.Engine.play === 'function') { SugarCube.Engine.play(target); return; } } catch(e){}
try { if (window.Engine && typeof Engine.play === 'function') { Engine.play(target); return; } } catch(e){}
try { window.location.hash = '#passage-' + encodeURIComponent(target); } catch(e){}
}, 0);
}
// ===== Polyfills (light) =====
if (!window.performance || !performance.now){
window.performance = window.performance || {};
performance.now = function(){ return Date.now(); };
}
// ===== Game config =====
var TIME_LIMIT = 15;
var PLAYER_RADIUS = 14;
var SHIP_RADIUS = 18;
var SHIP_BASE_SPEED = 120;
var SHIP_FLEE_MULT = 2.4;
var COLLIDE_DIST = PLAYER_RADIUS + SHIP_RADIUS - 2;
var CANVAS_W = 1260, CANVAS_H = 540;
// ===== DOM =====
var canvas = document.getElementById('ctc-canvas');
var timeLbl = document.getElementById('ctc-time');
if (!canvas || !canvas.getContext){ return; }
var ctx = canvas.getContext('2d');
// ===== State =====
var lastT = performance.now();
var timeLeft = TIME_LIMIT;
var rafId = null;
var running = true;
var player = { x: CANVAS_W/2, y: CANVAS_H/2 };
var ship = { x: CANVAS_W*0.75, y: CANVAS_H*0.55, vx:0, vy:0, speed: SHIP_BASE_SPEED };
// ===== Input (with removeable handlers) =====
var keys = Object.create(null);
function onKeyDown(e){ keys[(e.key||'').toLowerCase()] = true; }
function onKeyUp(e){ keys[(e.key||'').toLowerCase()] = false; }
window.addEventListener('keydown', onKeyDown);
window.addEventListener('keyup', onKeyUp);
// ===== Utils =====
function clamp(v,a,b){ return Math.max(a, Math.min(b, v)); }
function dist(ax,ay,bx,by){ var dx=ax-bx, dy=ay-by; return Math.hypot ? Math.hypot(dx,dy) : Math.sqrt(dx*dx+dy*dy); }
function drawBackground(){
ctx.fillStyle = '#05070a';
ctx.fillRect(0,0,CANVAS_W,CANVAS_H);
ctx.fillStyle = 'rgba(255,255,255,0.035)';
for(var i=0;i<80;i++){
var x=(i*53)%CANVAS_W, y=(i*91)%CANVAS_H;
ctx.fillRect(x,y,1,1);
}
ctx.strokeStyle = 'rgba(158,216,255,0.06)';
ctx.lineWidth = 1;
var step = 60;
ctx.beginPath();
for(var gx=0; gx<=CANVAS_W; gx+=step){ ctx.moveTo(gx,0); ctx.lineTo(gx,CANVAS_H); }
for(var gy=0; gy<=CANVAS_H; gy+=step){ ctx.moveTo(0,gy); ctx.lineTo(CANVAS_W,gy); }
ctx.stroke();
}
function drawPlayer(){
ctx.save(); ctx.translate(player.x, player.y);
ctx.beginPath(); ctx.strokeStyle='#ffffff'; ctx.lineWidth=2;
ctx.arc(0,0,PLAYER_RADIUS,0,Math.PI*2); ctx.stroke();
ctx.beginPath();
ctx.moveTo(-PLAYER_RADIUS-6,0); ctx.lineTo(-6,0);
ctx.moveTo( PLAYER_RADIUS+6,0); ctx.lineTo( 6,0);
ctx.moveTo(0,-PLAYER_RADIUS-6); ctx.lineTo(0,-6);
ctx.moveTo(0, PLAYER_RADIUS+6); ctx.lineTo(0, 6);
ctx.stroke(); ctx.restore();
}
function drawShip(){
ctx.save(); ctx.translate(ship.x, ship.y);
ctx.beginPath(); ctx.fillStyle='rgba(255,160,60,0.08)';
ctx.arc(0,0,SHIP_RADIUS+10,0,Math.PI*2); ctx.fill();
ctx.beginPath(); ctx.fillStyle='#ff9a2a';
ctx.arc(0,0,SHIP_RADIUS,0,Math.PI*2); ctx.fill();
ctx.strokeStyle='#402200'; ctx.lineWidth=2; ctx.stroke();
ctx.restore();
}
function flashColor(color, frames, cb){
var f=0;
(function _flash(){
ctx.fillStyle = color;
ctx.globalAlpha = 0.18 * (1 - f/frames);
ctx.fillRect(0,0,CANVAS_W,CANVAS_H);
ctx.globalAlpha = 1;
f++;
if (f <= frames) requestAnimationFrame(_flash);
else if (cb) cb();
})();
}
// ===== Core Loop =====
function step(now){
if(!running) return;
var dt = Math.min(0.05, (now - lastT) / 1000);
lastT = now;
// player move
var speedKB = 280, mvx=0, mvy=0;
if(keys['arrowleft']||keys['a']) mvx=-1;
if(keys['arrowright']||keys['d']) mvx= 1;
if(keys['arrowup']||keys['w']) mvy=-1;
if(keys['arrowdown']||keys['s']) mvy= 1;
if(mvx||mvy){
var len=Math.sqrt(mvx*mvx+mvy*mvy)||1;
player.x += (mvx/len)*speedKB*dt;
player.y += (mvy/len)*speedKB*dt;
player.x = clamp(player.x, 0, CANVAS_W);
player.y = clamp(player.y, 0, CANVAS_H);
}
// AI
var d = dist(player.x, player.y, ship.x, ship.y);
var targetVX=0, targetVY=0;
if(d < 240){
targetVX = ship.x - player.x;
targetVY = ship.y - player.y;
var len2 = Math.sqrt(targetVX*targetVX + targetVY*targetVY) || 1;
var flee = (d < 90) ? SHIP_FLEE_MULT : 1.35;
targetVX = (targetVX/len2)*ship.speed*flee;
targetVY = (targetVY/len2)*ship.speed*flee;
} else {
targetVX = ship.vx + (Math.random()-0.5)*12;
targetVY = ship.vy + (Math.random()-0.5)*12;
var len3 = Math.sqrt(targetVX*targetVX + targetVY*targetVY) || 1;
targetVX = (targetVX/len3)*ship.speed*0.7;
targetVY = (targetVY/len3)*ship.speed*0.7;
}
ship.vx += (targetVX - ship.vx)*6*dt;
ship.vy += (targetVY - ship.vy)*6*dt;
ship.x += ship.vx*dt;
ship.y += ship.vy*dt;
// bounds
if(ship.x < 20){ ship.x=20; ship.vx=Math.abs(ship.vx)*0.85; }
if(ship.x > CANVAS_W-20){ ship.x=CANVAS_W-20; ship.vx=-Math.abs(ship.vx)*0.85; }
if(ship.y < 20){ ship.y=20; ship.vy=Math.abs(ship.vy)*0.85; }
if(ship.y > CANVAS_H-20){ ship.y=CANVAS_H-20; ship.vy=-Math.abs(ship.vy)*0.85; }
// win
if(d <= COLLIDE_DIST){
running=false; if(rafId) cancelAnimationFrame(rafId);
// villanás tetszés szerint kikapcsolható: csak gotoPassage('Winner') is elég
flashColor('#88ff88', 8, function(){ gotoPassage('Winner'); });
return;
}
// time
timeLeft -= dt;
if (timeLbl) timeLbl.textContent = Math.ceil(Math.max(0, timeLeft));
if(timeLeft <= 0){
running=false; if(rafId) cancelAnimationFrame(rafId);
flashColor('#ff6666', 10, function(){ gotoPassage('GameOver'); });
return;
}
// render
drawBackground();
drawShip();
drawPlayer();
rafId = requestAnimationFrame(step);
}
// ===== Start & store instance for safe re-entry =====
lastT = performance.now();
rafId = requestAnimationFrame(step);
// expose cleanup so next run can dispose the previous safely
window.__CTC.instance = {
cleanup: function(){
try { running = false; } catch(e){}
try { if (rafId) cancelAnimationFrame(rafId); } catch(e){}
try { window.removeEventListener('keydown', onKeyDown); } catch(e){}
try { window.removeEventListener('keyup', onKeyUp); } catch(e){}
}
};
})();
</script>
<<set $pics17 to false>><style>
.ctc-wrap { margin:0 !important; padding:0 !important; }
.ctc-wrap * { margin:0; box-sizing:border-box; }
.ctc-stage{ display:grid; place-items:center; margin:0; }
/* Vászon: max 1260px széles, 21:9 képarány; belső felbontás 1260x540 */
#ctc-canvas{
background:#000;
border:4px solid #0b2430;
width:min(1260px,100%);
aspect-ratio:21/9;
height:auto;
image-rendering:optimizeSpeed;
display:block;
}
.ctc-hud{
color:#fff;
font-family:Rajdhani, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
display:flex; flex-direction:column;
gap:4px; margin-top:6px;
line-height:1.25; text-align:center;
}
.ctc-hud .time{ font-weight:700; font-size:18px; }
.ctc-hud .instr{ font-size:16px; opacity:.95; }
</style><div class="ctc-wrap" id="ctc-root">
<div class="ctc-stage">
<canvas id="ctc-canvas" width="1260" height="540"></canvas>
</div>
<div class="ctc-hud"><div class="time">Time remaining before it flees: <span id="ctc-time">15</span>s</div><div class="instr">Disable the fleeing ship's thrusters. Use <strong>WASD</strong> or <strong>Arrow keys</strong> to aim and intercept.</div></div></div>
<script>
(function(){
// ===== Single-instance guard & cleanup =====
(function ensureSingleton(){
if (!window.__CTC) window.__CTC = {};
const inst = window.__CTC.instance;
if (inst && typeof inst.cleanup === 'function') {
try { inst.cleanup(); } catch(e){}
}
})();
// ===== Basic engine goto (no alerts, cross-browser) =====
function gotoPassage(name){
var target = String(name || "");
setTimeout(function(){
try { if (window.SugarCube && SugarCube.Engine && typeof SugarCube.Engine.play === 'function') { SugarCube.Engine.play(target); return; } } catch(e){}
try { if (window.Engine && typeof Engine.play === 'function') { Engine.play(target); return; } } catch(e){}
try { window.location.hash = '#passage-' + encodeURIComponent(target); } catch(e){}
}, 0);
}
// ===== Polyfills (light) =====
if (!window.performance || !performance.now){
window.performance = window.performance || {};
performance.now = function(){ return Date.now(); };
}
// ===== Game config =====
var TIME_LIMIT = 15;
var PLAYER_RADIUS = 14;
var SHIP_RADIUS = 18;
var SHIP_BASE_SPEED = 120;
var SHIP_FLEE_MULT = 2.4;
var COLLIDE_DIST = PLAYER_RADIUS + SHIP_RADIUS - 2;
var CANVAS_W = 1260, CANVAS_H = 540;
// ===== DOM =====
var canvas = document.getElementById('ctc-canvas');
var timeLbl = document.getElementById('ctc-time');
if (!canvas || !canvas.getContext){ return; }
var ctx = canvas.getContext('2d');
// ===== State =====
var lastT = performance.now();
var timeLeft = TIME_LIMIT;
var rafId = null;
var running = true;
var player = { x: CANVAS_W/2, y: CANVAS_H/2 };
var ship = { x: CANVAS_W*0.75, y: CANVAS_H*0.55, vx:0, vy:0, speed: SHIP_BASE_SPEED };
// ===== Input (with removeable handlers) =====
var keys = Object.create(null);
function onKeyDown(e){ keys[(e.key||'').toLowerCase()] = true; }
function onKeyUp(e){ keys[(e.key||'').toLowerCase()] = false; }
window.addEventListener('keydown', onKeyDown);
window.addEventListener('keyup', onKeyUp);
// ===== Utils =====
function clamp(v,a,b){ return Math.max(a, Math.min(b, v)); }
function dist(ax,ay,bx,by){ var dx=ax-bx, dy=ay-by; return Math.hypot ? Math.hypot(dx,dy) : Math.sqrt(dx*dx+dy*dy); }
function drawBackground(){
ctx.fillStyle = '#05070a';
ctx.fillRect(0,0,CANVAS_W,CANVAS_H);
ctx.fillStyle = 'rgba(255,255,255,0.035)';
for(var i=0;i<80;i++){
var x=(i*53)%CANVAS_W, y=(i*91)%CANVAS_H;
ctx.fillRect(x,y,1,1);
}
ctx.strokeStyle = 'rgba(158,216,255,0.06)';
ctx.lineWidth = 1;
var step = 60;
ctx.beginPath();
for(var gx=0; gx<=CANVAS_W; gx+=step){ ctx.moveTo(gx,0); ctx.lineTo(gx,CANVAS_H); }
for(var gy=0; gy<=CANVAS_H; gy+=step){ ctx.moveTo(0,gy); ctx.lineTo(CANVAS_W,gy); }
ctx.stroke();
}
function drawPlayer(){
ctx.save(); ctx.translate(player.x, player.y);
ctx.beginPath(); ctx.strokeStyle='#ffffff'; ctx.lineWidth=2;
ctx.arc(0,0,PLAYER_RADIUS,0,Math.PI*2); ctx.stroke();
ctx.beginPath();
ctx.moveTo(-PLAYER_RADIUS-6,0); ctx.lineTo(-6,0);
ctx.moveTo( PLAYER_RADIUS+6,0); ctx.lineTo( 6,0);
ctx.moveTo(0,-PLAYER_RADIUS-6); ctx.lineTo(0,-6);
ctx.moveTo(0, PLAYER_RADIUS+6); ctx.lineTo(0, 6);
ctx.stroke(); ctx.restore();
}
function drawShip(){
ctx.save(); ctx.translate(ship.x, ship.y);
ctx.beginPath(); ctx.fillStyle='rgba(255,160,60,0.08)';
ctx.arc(0,0,SHIP_RADIUS+10,0,Math.PI*2); ctx.fill();
ctx.beginPath(); ctx.fillStyle='#ff9a2a';
ctx.arc(0,0,SHIP_RADIUS,0,Math.PI*2); ctx.fill();
ctx.strokeStyle='#402200'; ctx.lineWidth=2; ctx.stroke();
ctx.restore();
}
function flashColor(color, frames, cb){
var f=0;
(function _flash(){
ctx.fillStyle = color;
ctx.globalAlpha = 0.18 * (1 - f/frames);
ctx.fillRect(0,0,CANVAS_W,CANVAS_H);
ctx.globalAlpha = 1;
f++;
if (f <= frames) requestAnimationFrame(_flash);
else if (cb) cb();
})();
}
// ===== Core Loop =====
function step(now){
if(!running) return;
var dt = Math.min(0.05, (now - lastT) / 1000);
lastT = now;
// player move
var speedKB = 280, mvx=0, mvy=0;
if(keys['arrowleft']||keys['a']) mvx=-1;
if(keys['arrowright']||keys['d']) mvx= 1;
if(keys['arrowup']||keys['w']) mvy=-1;
if(keys['arrowdown']||keys['s']) mvy= 1;
if(mvx||mvy){
var len=Math.sqrt(mvx*mvx+mvy*mvy)||1;
player.x += (mvx/len)*speedKB*dt;
player.y += (mvy/len)*speedKB*dt;
player.x = clamp(player.x, 0, CANVAS_W);
player.y = clamp(player.y, 0, CANVAS_H);
}
// AI
var d = dist(player.x, player.y, ship.x, ship.y);
var targetVX=0, targetVY=0;
if(d < 240){
targetVX = ship.x - player.x;
targetVY = ship.y - player.y;
var len2 = Math.sqrt(targetVX*targetVX + targetVY*targetVY) || 1;
var flee = (d < 90) ? SHIP_FLEE_MULT : 1.35;
targetVX = (targetVX/len2)*ship.speed*flee;
targetVY = (targetVY/len2)*ship.speed*flee;
} else {
targetVX = ship.vx + (Math.random()-0.5)*12;
targetVY = ship.vy + (Math.random()-0.5)*12;
var len3 = Math.sqrt(targetVX*targetVX + targetVY*targetVY) || 1;
targetVX = (targetVX/len3)*ship.speed*0.7;
targetVY = (targetVY/len3)*ship.speed*0.7;
}
ship.vx += (targetVX - ship.vx)*6*dt;
ship.vy += (targetVY - ship.vy)*6*dt;
ship.x += ship.vx*dt;
ship.y += ship.vy*dt;
// bounds
if(ship.x < 20){ ship.x=20; ship.vx=Math.abs(ship.vx)*0.85; }
if(ship.x > CANVAS_W-20){ ship.x=CANVAS_W-20; ship.vx=-Math.abs(ship.vx)*0.85; }
if(ship.y < 20){ ship.y=20; ship.vy=Math.abs(ship.vy)*0.85; }
if(ship.y > CANVAS_H-20){ ship.y=CANVAS_H-20; ship.vy=-Math.abs(ship.vy)*0.85; }
// win
if(d <= COLLIDE_DIST){
running=false; if(rafId) cancelAnimationFrame(rafId);
// villanás tetszés szerint kikapcsolható: csak gotoPassage('Winner') is elég
flashColor('#88ff88', 8, function(){ gotoPassage('Winner'); });
return;
}
// time
timeLeft -= dt;
if (timeLbl) timeLbl.textContent = Math.ceil(Math.max(0, timeLeft));
if(timeLeft <= 0){
running=false; if(rafId) cancelAnimationFrame(rafId);
flashColor('#ff6666', 10, function(){ gotoPassage('GameOver'); });
return;
}
// render
drawBackground();
drawShip();
drawPlayer();
rafId = requestAnimationFrame(step);
}
// ===== Start & store instance for safe re-entry =====
lastT = performance.now();
rafId = requestAnimationFrame(step);
// expose cleanup so next run can dispose the previous safely
window.__CTC.instance = {
cleanup: function(){
try { running = false; } catch(e){}
try { if (rafId) cancelAnimationFrame(rafId); } catch(e){}
try { window.removeEventListener('keydown', onKeyDown); } catch(e){}
try { window.removeEventListener('keyup', onKeyUp); } catch(e){}
}
};
})();
</script>
<<set $pics18 to false>><img src="IMG/1/0199.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0160 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">-270 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">N/A</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A destroyed Zenthari ship - an unusual sight, not only in this corner of the galaxy, but anywhere else as well.</span></div>
<<if $survivor is true>> <<else>><div style="text-align: center;">[[Search for survivors]]</div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0160">>
<img src="IMG\1\0151.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0151 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+9 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">49 - beings of various species</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Remnant of the Venutrion asteroid, where a mining outpost was established to extract minerals from its core. Appears to function as a forced labor camp, likely connected to the casino operations.</span>
</div>
<<if $male12 is true>><div style="text-align: center;"><a data-passage="0151a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height:150px; height:auto; width:auto;"></a></div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0151">>
<<if setup.mine is undefined>>
<<run setup.mine = new Audio("music/mine.mp3")>>
<<run setup.mine.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.mine.play().catch(()=>{})>>
<<set $b151 to true>><img src="IMG\1\0151a.png" />
You were right. This place isn’t just a mine - it’s a prison, <n1>the modern face of slavery</n1>. Shackled prisoners toil in the depths, beings of many different species. With bare hands, they break the rock, gather the ore, their sweat mixing with the metallic haze of radioactive dust. The pace of extraction is far from efficient, but the owners hardly care - after all, <n1>free labor has no cost</n1>. The warden tells you curtly that this mine belongs to <n1>the casino</n1>. Those who lose there, work here. Indebted guests end up in this place to work off what they owe - or rather, to slowly decay within the cruel logic of the system. As you gaze across the dusty lines of workers, you notice several humanoid figures among them. This could be <n1>an opportunity</n1>. You ask if they are for sale. The answer comes cold and transactional: “Pay off their debts, and they’re yours.” The only problem is, <n1>your species’ currency isn’t recognized here</n1>. You’ll have to find a galactic currency exchange or <n1>find a way to earn money</n1>.
<div style="text-align: center;"><<if $lotmoney is true>>[[Pay off the humanoids’ debts]]<<else>><n2>You don’t possess any form of galactic currency they would accept.</n2><</if>></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<img src="IMG\1\0151b.png" />
You transfer the credits without hesitation - the deal is done. For that sum, you acquire <n1>two male humanoids</n1> and <n1>one female</n1>. They’re property now, assets to be used as needed. As the guard confirms the transaction you can’t help but think: <n1>a profitable exchange</n1>.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.cash is undefined>>
<<run setup.cash = new Audio("music/cash.mp3")>>
<<run setup.cash.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<set $human += 1>>
<<set $male += 2>>
<<set $male12 to false>><img src="IMG/1/0152.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0152 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+27 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Multiple higher lifeforms</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A planet with a unique atmosphere. The lifeforms found here are equally distinctive, both in their external appearance and biological structure. Extraction of these organisms from the planet’s atmosphere is not advised, as it would most likely result in their death.</span></div>
<div style="text-align:center;"><a data-passage="0152a" class="link-internal link-image"><img src="IMG/enter.png" style="max-height:150px;height:auto;width:auto;"></a></div>
<div style="text-align:center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0152">>
<img src="IMG\1\0152a.png" />
The inhabitants of the planet are humanoids who live with strange creatures in a clear <n1>hierarchical relationship</n1>. They seem to own them, and as you fly over the surface, you can see that these creatures are made to fight each other. The battles bring them joy and entertainment - it’s the core of their way of life. However, even here, some have been touched by the <n1>corruption spreading through the universe</n1>, and they use these creatures for a very different kind of pleasure. Some hide in the [[cool shade of the trees]] with their companions, away from prying eyes. Others have no fear of the [[open fields and the audience’s gaze]]. And there are those who [[push the limits of their own bodies]] with the help of their creatures. A strange world, that much is certain - [[best left untouched|Bridge]]
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\pok1.mp4" type="video/mp4">
</video>
@@
<div style="text-align: center;">Small in size, but makes up for it with determination.</div>
<div style="text-align: center;">[[Back|0152a]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\pok2.mp4" type="video/mp4">
</video>
@@
<div style="text-align: center;">Curious gazes and a growing crowd - it seems this isn’t a common sight here.</div>
<div style="text-align: center;">[[Back|0152a]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\pok3.mp4" type="video/mp4">
</video>
@@
<div style="text-align: center;">Curious or insatiable? She could only be one of the two.</div>
<div style="text-align: center;">[[Back|0152a]]</div><img src="IMG\1\0153.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0153 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+37 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Unmeasurable</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A unique celestial formation studied by scientists from multiple universes, all seeking the answer to the eternal question: which came first - the chicken or the egg?</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0153">>
<<if setup.tyuk is undefined>>
<<run setup.tyuk = new Audio("music/tyuk.mp3")>>
<<run setup.tyuk.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.tyuk.play().catch(()=>{})>>
<img src="IMG\1\0154.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0154 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+50 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Demonic lifeforms</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Another void rupture has formed, far more expansive than the previous one. Demonic energy has completely consumed the planet, eradicating all humanoid life on its surface.</span></div>
<div style="text-align: center;"> <a data-passage="0154a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0154">>
<img src="IMG\1\0154a.png" />
You observe a demonic species previously unknown to you. They bear a striking resemblance to the canines of humanoid worlds - perhaps they evolved from them. In the past, you mostly encountered higher demonic entities within void ruptures, often in the company of living humanoids. Demonic beings have always focused on <n2>corrupting humanoids</n2>, infecting both body and mind until they became monsters themselves. But these creatures are different - simpler, more primal, driven purely by instinct. The question arises: <n2>how would they react to humanoids now</n2>? You arrived too late; no living being remains on the planet. Yet if you were to <n2>sacrifice one of your own</n2>… perhaps you could find out.
<div style="text-align: center;"> <<if $human >= 1>> [[Send a humanoid to the planet's surface|0154b]] <<else>> <n2>Get a humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.roarSound is undefined>><<run setup.roarSound = new Audio("music/roar.mp3")>><<run setup.roarSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.roarSound.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\demondog.mp4" type="video/mp4">
</video>
@@
Everything unfolds just as expected. You’ve traveled through this region of the galaxy for a long time - you’ve seen enough to know how such encounters usually end, even without tests or experiments. And yet… you experiment anyway. Perhaps because it <n2>amuses you</n2>? It breaks the monotony - and after all, <n2>isn’t that the true purpose of your journey</n2>?
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human -= 1>><<if $comics3a is true>><div class="hover-image-wrapper"><img src="IMG/1/0155.png" class="main-image" alt="comics"><a data-passage="0155a" class="hover-link link-internal link-image"><img src="IMG/1/0155a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01550.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0155 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">-270 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Primitive agricultural tools? Perhaps an ethnographic museum ship was damaged here. You’re not entirely sure what you’re looking at.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0155">><img src="IMG/1/comics/farm/1.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/farm/2.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/farm/3.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/farm/4.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/farm/5.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/farm/6.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/farm/7.png" style="display:block; margin:0; padding:0; border:0;" />
<img src="IMG/1/comics/farm/8.png" style="display:block; margin:0; padding:0; border:0;" />
<div style="text-align: center;"><<return "Back">></div>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0100d.png" />
The container matches <n1>The Sketcher’s</n1> description, which strongly suggests you’ve found a comic fragment. Only the Sketcher can fully decode it, but the title can already be identified in the code: <n1>Unlucky Patty’s Farm - Part I.</n1> - you’ve uncovered one of its fragments.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $comicsc +=1>>
<<set $comics3a to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0156.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0156 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+32 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">Lower lifeforms</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A humid, swamp-covered dwarf planet where stagnant waters and thick vegetation dominate the surface. The air is heavy with moisture and decay,</span></div>
<<if $human20 is true>><div style="text-align: center;"> <a data-passage="0156a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0156">>
<<if setup.fogo && !setup.fogo.paused>>
<<run setup.fogo.pause()>>
<<run setup.fogo.currentTime = 0>>
<</if>><img src="IMG\1\0156a.png" />
As you wander across the swampy planet, nothing seems remarkable at first - everything is silent, lifeless, dull. You’re about to leave when your radar suddenly picks up movement. The treetops tremble, and thousands of flying creatures burst into the air. Moments later, the sharp roar of a jet engine cuts through the mist as a small spacecraft rises from the canopy - piloted by a single humanoid. This desolate world offers the perfect opportunity to <n2>claim another humanoid specimen</n2>. You only need to catch them. It won’t be easy - their ship is smaller, faster, and built for quick maneuvers. They might even surprise you. But that doesn’t stop you. [[The hunt begins...]]<style>
.ctc-wrap { margin:0 !important; padding:0 !important; }
.ctc-wrap * { margin:0; box-sizing:border-box; }
.ctc-stage{ display:grid; place-items:center; margin:0; }
/* Vászon: max 1260px széles, 21:9 képarány; belső felbontás 1260x540 */
#ctc-canvas{
background:#000;
border:4px solid #0b2430;
width:min(1260px,100%);
aspect-ratio:21/9;
height:auto;
image-rendering:optimizeSpeed;
display:block;
}
.ctc-hud{
color:#fff;
font-family:Rajdhani, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
display:flex; flex-direction:column;
gap:4px; margin-top:6px;
line-height:1.25; text-align:center;
}
.ctc-hud .time{ font-weight:700; font-size:18px; }
.ctc-hud .instr{ font-size:16px; opacity:.95; }
</style><div class="ctc-wrap" id="ctc-root">
<div class="ctc-stage">
<canvas id="ctc-canvas" width="1260" height="540"></canvas>
</div>
<div class="ctc-hud"><div class="instr">Disable the fleeing ship's thrusters. Use <strong>WASD</strong> or <strong>Arrow keys</strong> to aim and intercept.</div></div></div>
<div style="text-align: center;">[[Give up the chase|Bridge]]</div>
<script>
(function(){
/* ===== Version-safe singleton ===== */
(function ensureSingleton(){
try {
if (!window.__CTC) window.__CTC = {};
if (window.__CTC.instance && typeof window.__CTC.instance.cleanup === 'function') {
window.__CTC.instance.cleanup();
}
} catch(e){}
})();
/* ===== Polyfills ===== */
(function(){
if (!window.performance || !performance.now){
window.performance = window.performance || {};
performance.now = function(){ return Date.now(); };
}
var raf = window.requestAnimationFrame, caf = window.cancelAnimationFrame;
var last = 0;
if (!raf || !caf){
window.requestAnimationFrame = function(cb){
var now = performance.now();
var next = Math.max(0, 16 - (now - last));
var id = window.setTimeout(function(){ cb(now + next); }, next);
last = now + next; return id;
};
window.cancelAnimationFrame = function(id){ clearTimeout(id); };
}
})();
/* ===== Helper: goto passage, engine-agnosztikus ===== */
function gotoPassage(name){
var target = String(name || "");
setTimeout(function(){
try { if (window.SugarCube && SugarCube.Engine && typeof SugarCube.Engine.play === 'function') { SugarCube.Engine.play(target); return; } } catch(e){}
try { if (window.Engine && typeof Engine.play === 'function') { Engine.play(target); return; } } catch(e){}
try { window.location.hash = '#passage-' + encodeURIComponent(target); } catch(e){}
}, 0);
}
/* ===== Config ===== */
var PLAYER_RADIUS = 14;
var SHIP_RADIUS = 18;
var SHIP_BASE_SPEED = 200;
var SHIP_FLEE_MULT = 3.0;
var COLLIDE_DIST = PLAYER_RADIUS + SHIP_RADIUS - 2;
var CANVAS_W = 1260, CANVAS_H = 540; // belső referencia (21:9)
// Fal/sarok kerülés – finomhangolt paraméterek
var SAFE = 110; // „komfort” távolság a falaktól
var CORNER_ZONE = 95; // ennek közelében indul a fal menti kúszás
var EDGE_REPEL_MAX = 520; // fal-taszítás felső korlát
var EDGE_REPEL_K = 420; // inverz-távolság erősítés
var TANGENTIAL_BASE = 0.45; // általános fal-menti csúszás súlya
var CORNER_TAN_PUSH = 780; // sarokban: erős tangenciális „gurítás”
var MIN_SPEED = 140; // sose lassuljon 0 közelébe
var MAX_THRUST = 7.5; // gyorsulási „agilitás”
/* ===== DOM ===== */
var canvas = document.getElementById('ctc-canvas');
if (!canvas || !canvas.getContext){ return; }
var ctx = canvas.getContext('2d');
/* ===== Méretezés (szülő alapján) ===== */
function resizeCanvas(){
try{
var parent = canvas.parentElement;
var w = Math.min(1260, parent ? (parent.clientWidth || 1260) : 1260);
var h = Math.round(w * (9/21));
canvas.width = w;
canvas.height = h;
}catch(e){
canvas.width = 1260; canvas.height = 540;
}
}
resizeCanvas();
window.addEventListener('resize', resizeCanvas);
/* ===== State ===== */
var lastT = performance.now();
var rafId = null;
var running = true;
var player = { x: CANVAS_W/2, y: CANVAS_H/2 };
var ship = { x: CANVAS_W*0.75, y: CANVAS_H*0.55, vx:0, vy:0, speed: SHIP_BASE_SPEED };
/* ===== Input ===== */
var keys = Object.create(null);
function onKeyDown(e){ keys[(e.key||'').toLowerCase()] = true; }
function onKeyUp(e){ keys[(e.key||'').toLowerCase()] = false; }
window.addEventListener('keydown', onKeyDown);
window.addEventListener('keyup', onKeyUp);
/* ===== Utils ===== */
function clamp(v,a,b){ return Math.max(a, Math.min(b, v)); }
function dist(ax,ay,bx,by){ var dx=ax-bx, dy=ay-by; return Math.hypot?Math.hypot(dx,dy):Math.sqrt(dx*dx+dy*dy); }
function len(x,y){ return Math.sqrt(x*x+y*y) || 0; }
function norm(x,y){ var L = len(x,y) || 1; return {x:x/L, y:y/L}; }
function mix(ax,ay,bx,by,t){ return {x:ax*(1-t)+bx*t, y:ay*(1-t)+by*t}; }
function drawBackground(w,h){
ctx.fillStyle = '#05070a';
ctx.fillRect(0,0,w,h);
ctx.fillStyle = 'rgba(255,255,255,0.035)';
for(var i=0;i<80;i++){
var x=(i*53)%w, y=(i*91)%h; ctx.fillRect(x,y,1,1);
}
ctx.strokeStyle = 'rgba(158,216,255,0.06)'; ctx.lineWidth = 1;
var step = Math.round(w/21*1.428);
ctx.beginPath();
for(var gx=0; gx<=w; gx+=step){ ctx.moveTo(gx,0); ctx.lineTo(gx,h); }
for(var gy=0; gy<=h; gy+=step){ ctx.moveTo(0,gy); ctx.lineTo(w,gy); }
ctx.stroke();
}
function scaleX(x){ return x * (canvas.width / CANVAS_W); }
function scaleY(y){ return y * (canvas.height / CANVAS_H); }
function scaleR(r){ return r * (canvas.width / CANVAS_W); }
function drawPlayer(){
ctx.save(); ctx.translate(scaleX(player.x), scaleY(player.y));
ctx.beginPath(); ctx.strokeStyle='#ffffff'; ctx.lineWidth=2;
ctx.arc(0,0,scaleR(PLAYER_RADIUS),0,Math.PI*2); ctx.stroke();
var R = scaleR(PLAYER_RADIUS);
ctx.beginPath();
ctx.moveTo(-R-6,0); ctx.lineTo(-6,0);
ctx.moveTo( R+6,0); ctx.lineTo( 6,0);
ctx.moveTo(0,-R-6); ctx.lineTo(0,-6);
ctx.moveTo(0, R+6); ctx.lineTo(0, 6);
ctx.stroke(); ctx.restore();
}
function drawShip(){
ctx.save(); ctx.translate(scaleX(ship.x), scaleY(ship.y));
ctx.beginPath(); ctx.fillStyle='rgba(255,160,60,0.08)';
ctx.arc(0,0,scaleR(SHIP_RADIUS+10),0,Math.PI*2); ctx.fill();
ctx.beginPath(); ctx.fillStyle='#ff9a2a';
ctx.arc(0,0,scaleR(SHIP_RADIUS),0,Math.PI*2); ctx.fill();
ctx.strokeStyle='#402200'; ctx.lineWidth=2; ctx.stroke();
ctx.restore();
}
function flashColor(color, frames, cb){
var f=0, w=canvas.width, h=canvas.height;
(function _flash(){
ctx.fillStyle = color; ctx.globalAlpha = 0.18 * (1 - f/frames);
ctx.fillRect(0,0,w,h); ctx.globalAlpha = 1; f++;
if (f <= frames) requestAnimationFrame(_flash);
else if (cb) cb();
})();
}
/* ===== Fal-taszítás (kíméletes, csillapított) ===== */
function edgeRepel(px, py){
// inverz távolság a négy faltól + sarok-erősítés
var rx = 0, ry = 0;
var dl = px; // bal falig
var dr = CANVAS_W - px; // jobb falig
var dtp = py; // top falig
var db = CANVAS_H - py; // bottom falig
function forceFrom(d, signX, signY){
if (d >= SAFE) return {x:0, y:0};
var s = clamp((SAFE - d)/SAFE, 0, 1); // 0..1
var mag = Math.min(EDGE_REPEL_MAX, EDGE_REPEL_K/(d+8)) * s; // kíméletes
return { x: (signX||0)*mag, y: (signY||0)*mag };
}
// Négy fal komponense
var fL = forceFrom(dl, +1, 0); rx += fL.x; ry += fL.y;
var fR = forceFrom(dr, -1, 0); rx += fR.x; ry += fR.y;
var fT = forceFrom(dtp,0, +1); rx += fT.x; ry += fT.y;
var fB = forceFrom(db, 0, -1); rx += fB.x; ry += fB.y;
// Sarok-erősítés: ha két fal közel van, egy kicsit megdobjuk kifelé
var nearX = (dl < SAFE || dr < SAFE), nearY = (dtp < SAFE || db < SAFE);
if (nearX && nearY){
rx *= 1.35; ry *= 1.35;
}
return {x:rx, y:ry, nearX: (dl<SAFE || dr<SAFE), nearY: (dtp<SAFE || db<SAFE)};
}
/* ===== Core Loop ===== */
function step(now){
if(!running) return;
var dt = Math.min(0.05, (now - lastT) / 1000);
lastT = now;
// player move
var speedKB = 280, mvx=0, mvy=0;
if(keys['arrowleft']||keys['a']) mvx=-1;
if(keys['arrowright']||keys['d']) mvx= 1;
if(keys['arrowup']||keys['w']) mvy=-1;
if(keys['arrowdown']||keys['s']) mvy= 1;
if(mvx||mvy){
var L=Math.sqrt(mvx*mvx+mvy*mvy)||1;
player.x += (mvx/L)*speedKB*dt;
player.y += (mvy/L)*speedKB*dt;
player.x = clamp(player.x, 0, CANVAS_W);
player.y = clamp(player.y, 0, CANVAS_H);
}
// === AI: sarok/fal kerülő menekülés + folyamatos mozgás ===
var toPlayerX = player.x - ship.x;
var toPlayerY = player.y - ship.y;
var d = Math.sqrt(toPlayerX*toPlayerX + toPlayerY*toPlayerY) || 1;
// 1) Alap flee irány (tőled kifelé)
var flee = norm(-toPlayerX, -toPlayerY);
// 2) Fal-taszítás
var repel = edgeRepel(ship.x, ship.y);
// 3) Tangenciális komponens (fal mentén csúszás)
// Általános esetben kicsi, sarokban erős és „okos” irányt választ.
var tan = {x:0, y:0};
var baseTan = {x:-flee.y, y:flee.x}; // 90° elforgatás
// 4) Sarok-logika: ha mindkét tengelyen fal-közeli és különösen a sarok-zónában, guruljon el mellette
var nearCorner = repel.nearX && repel.nearY &&
( (ship.x < CORNER_ZONE || CANVAS_W - ship.x < CORNER_ZONE) &&
(ship.y < CORNER_ZONE || CANVAS_H - ship.y < CORNER_ZONE) );
if (nearCorner){
// Keressük a legközelebbi sarokpontot
var cx = (ship.x < CANVAS_W/2) ? 0 : CANVAS_W;
var cy = (ship.y < CANVAS_H/2) ? 0 : CANVAS_H;
var awayCorner = norm(ship.x - cx, ship.y - cy); // kifelé a sarokból
var t1 = {x:-awayCorner.y, y: awayCorner.x};
var t2 = {x: awayCorner.y, y:-awayCorner.x};
// Válasszunk olyan tangens irányt, ami NÖVELI a távolságot a játékostól
var fromPlayer = norm(ship.x - player.x, ship.y - player.y);
var score1 = t1.x*fromPlayer.x + t1.y*fromPlayer.y;
var score2 = t2.x*fromPlayer.x + t2.y*fromPlayer.y;
var bestT = (score2 > score1) ? t2 : t1;
// Kevert „gurítás”: erős tangens + enyhe kifelé tolás a sarokból
var k = 0.78;
tan = { x: bestT.x*CORNER_TAN_PUSH, y: bestT.y*CORNER_TAN_PUSH };
// Adunk hozzá még egy keveset a sarokból való kifelé tolásból
repel.x += awayCorner.x * EDGE_REPEL_K * k;
repel.y += awayCorner.y * EDGE_REPEL_K * k;
} else {
// Csak enyhe fal-menti siklás általános esetben
tan = { x: baseTan.x * (EDGE_REPEL_K * TANGENTIAL_BASE),
y: baseTan.y * (EDGE_REPEL_K * TANGENTIAL_BASE) };
}
// 5) Dinamikus „ijedtség”: közel harcban nagyobb menekülés
var fleeMult = (d < 120) ? SHIP_FLEE_MULT : 1.35;
// 6) Zaj egy kicsit, hogy ne tudj „lockolni”
var jitter = { x: (Math.random()-0.5)*40, y:(Math.random()-0.5)*40 };
// 7) Célsebesség vektor összeállítása (flee + repel + tan + jitter), majd normalizálás
var fx = flee.x * 600*fleeMult + repel.x + tan.x + jitter.x;
var fy = flee.y * 600*fleeMult + repel.y + tan.y + jitter.y;
// Normalizáljuk, és skálázzuk hajósebességre
var fL = Math.sqrt(fx*fx + fy*fy) || 1;
fx /= fL; fy /= fL;
var targetVX = fx * ship.speed * fleeMult;
var targetVY = fy * ship.speed * fleeMult;
// 8) Agilitás (simább gyorsulás)
ship.vx += clamp(targetVX - ship.vx, -MAX_THRUST*100*dt, MAX_THRUST*100*dt);
ship.vy += clamp(targetVY - ship.vy, -MAX_THRUST*100*dt, MAX_THRUST*100*dt);
// 9) Minimum sebesség betartása (ne „ragadjon le” a saroknál)
var curSpeed = Math.sqrt(ship.vx*ship.vx + ship.vy*ship.vy);
if (curSpeed < MIN_SPEED){
var dir = norm(ship.vx || fx, ship.vy || fy);
ship.vx = dir.x * MIN_SPEED;
ship.vy = dir.y * MIN_SPEED;
}
// 10) Integráció
ship.x += ship.vx*dt;
ship.y += ship.vy*dt;
// 11) Puha ütközés: visszapattanás kis energiaveszteséggel, sose álljon meg
function softClamp(pos, min, max, v){
if (pos < min){ pos = min; v = Math.abs(v)*0.96 + 20; }
else if (pos > max){ pos = max; v = -Math.abs(v)*0.96 - 20; }
return { pos: pos, v: v };
}
var bx = softClamp(ship.x, 12, CANVAS_W-12, ship.vx);
ship.x = bx.pos; ship.vx = bx.v;
var by = softClamp(ship.y, 12, CANVAS_H-12, ship.vy);
ship.y = by.pos; ship.vy = by.v;
// 12) Win -> WinQr
if(d <= COLLIDE_DIST){
running=false; if(rafId) cancelAnimationFrame(rafId);
flashColor('#88ff88', 8, function(){ gotoPassage('WinQr'); });
return;
}
// render
drawBackground(canvas.width, canvas.height);
drawShip();
drawPlayer();
rafId = requestAnimationFrame(step);
}
// ===== Start & expose cleanup =====
lastT = performance.now();
rafId = requestAnimationFrame(step);
var instance = {
cleanup: function(){
try { running = false; } catch(e){}
try { if (rafId) cancelAnimationFrame(rafId); } catch(e){}
try { window.removeEventListener('keydown', onKeyDown); } catch(e){}
try { window.removeEventListener('keyup', onKeyUp); } catch(e){}
try { window.removeEventListener('resize', resizeCanvas); } catch(e){}
}
};
window.__CTC_chase_v3 = instance;
window.__CTC.instance = instance;
})();
</script>
<<if setup.fogo is undefined>><<run setup.fogo = new Audio("music/fogo.mp3")>><<run setup.fogo.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.fogo.play().catch(()=>{})>><img src="IMG\1\0156b.png" />
The spaceship crashes, but the swampy, marshy ground absorbs most of the impact. The vessel doesn’t explode, yet it sinks deep into the mud. The humanoid forces open the airlock and tries to flee on foot. The chases and this new escape attempt <n1>ignite your anger</n1> - this time, you won’t leave the task to your creatures. <n1>You’ll hunt it down yourself.</n1> The built-up tension seethes within you, and you decide to release it… by having a little fun.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\mindfl.mp4" type="video/mp4">
</video>
@@
Capturing a wounded, disoriented humanoid after the crash was child’s play. First, you infiltrate its mind using your ability - then, as you move closer, the connection becomes physical. Your tendrils coil around its head, linking you completely. Now you can feel every flicker of impulse, every surge of sensation racing through its brain. <n1>Through this bond, you experience everything it feels.</n1> For you - for your kind - this is nothing more than <n1>chemistry, survival, necessity.</n1> No emotion is tied to it. But for the humanoid… it is different. Despite the fear clouding its thoughts, what you do to it elicits something else - <n1>pleasure, even delight.</n1> And that feeling - well… [[it’s magnificent.|Bridge]]
<<if setup.fogo && !setup.fogo.paused>>
<<run setup.fogo.pause()>>
<<run setup.fogo.currentTime = 0>>
<</if>>
<<set $human += 1>><<if $pics19 is true>><div class="hover-image-wrapper"><img src="IMG/1/0157.png" class="main-image" alt="comics"><a data-passage="0157a" class="hover-link link-internal link-image"><img src="IMG/1/0157a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01570.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0157 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">-173 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">Ossivane Belt - a planetary ring composed of fossilized exoskeleton shards and bone-like mineral lattices orbiting a dead world; no biosignatures detected, structure shows slow, non-biological accretion and micro-charge discharges along debris streams.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0157">><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=2>>
<<set $pics19 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG/1/0158.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0158 </span>
<br><b>TEMPERATURE:</b> <span style="color:#c0392b;">+40 °C</span>
<br><b>POPULATION:</b> <span style="color:#ffffff;">None</span>
<br><b>DESCRIPTION:</b> <span style="color:#ffffff;">A new Void rift has emerged, releasing waves of demonic energy that slowly consumed the planet. The first phase of the corruption has already passed - no traces of life remain, and even the demonic entities once present on the surface have vanished into the void.</span></div>
<div style="text-align: center;"> <a data-passage="0158a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0158">>
<<if $phon is true>><img src="IMG/1/01580.png" alt="comics">
<<else>><div class="hover-image-wrapper"><img src="IMG/1/0158a.png" class="main-image" alt="comics"><a class="hover-zone link-internal" data-passage="0158b" aria-label="Open 0158b"></a><img src="IMG/1/01580a.png" class="hover-image" alt="comics (hover)"></div><</if>>
<n2>A silent, desolate city lies abandoned</n2> - empty streets, crumbling facades, no living thing left to tell the tale. <n2>Yet the machines remember.</n2> Somewhere among the ruins you must find a device capable of recording images and logs - <n2>a fragment of technology</n2> whose memory you can access to reconstruct what destroyed this place.
<div style="text-align: center;">[[Back|Bridge]]</div>
<style>
.hover-image-wrapper {
position: relative;
display: inline-block;
line-height: 0;
}
.main-image {
display: block;
max-width: 100%;
height: auto;
}
/* Hover-kép (fedésre) */
.hover-image {
position: absolute;
inset: 0;
opacity: 0;
transition: opacity 0.25s ease;
pointer-events: none;
z-index: 2;
}
/* Hover-zóna a jobb oldalon (100px széles) */
.hover-zone {
position: absolute;
top: 0;
right: 0;
width: 100px;
height: 100%;
z-index: 3;
background: rgba(0, 0, 0, 0);
cursor: pointer;
}
/* Ha az egeret a zónára viszed, jelenjen meg a hover kép */
.hover-zone:hover ~ .hover-image {
opacity: 1;
}
</style>
<<if setup.szel is undefined>>
<<run setup.szel = new Audio("music/szel.mp3")>>
<<run setup.szel.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.szel.play().catch(()=>{})>><img src="IMG/1/0158c.png" />
A primitive yet multifunctional handheld computer for the humanoids - a <n2>smartphone.</n2> Perhaps it recorded something of the chaos. Its <n2>display is shattered</n2>, so you can’t inspect it here and now; you take it with you. Back aboard your ship, you quickly harvest the device’s memory and extract the information you need.
<div style="text-align: center;">[[Send the Device to the Cargo Bay|Bridge]]</div>
<<set $phon to true>><div id="camaOutput"><<CamaView>></div>
<div style="text-align: center;">After removing the shattered display, you finally gain access to the phone’s storage. <n1>Several videos are stored inside</n1> - all recorded two days before your arrival.</div><div class="camaRow">
<<link "<img src='IMG/1/cama_icon.png' class='camaIcon' alt='Cama 1'>" >>
<<set $cama = 1>>
<<replace "#camaOutput">><<CamaView>><</replace>>
<</link>>
<<link "<img src='IMG/1/camb_icon.png' class='camaIcon' alt='Cama 2'>" >>
<<set $cama = 2>>
<<replace "#camaOutput">><<CamaView>><</replace>>
<</link>>
<<link "<img src='IMG/1/camc_icon.png' class='camaIcon' alt='Cama 3'>" >>
<<set $cama = 3>>
<<replace "#camaOutput">><<CamaView>><</replace>>
<</link>></div>
<div style="text-align: center;">[[Back|item]]</div>
<style>
.camaRow {
display:flex; gap:4px; justify-content:center; align-items:center; flex-wrap:nowrap;
}
.camaIcon {
width:180px !important;
height:auto !important;
cursor:pointer;
transition:transform .15s ease, filter .15s ease;
}
.camaIcon:hover {
transform:scale(1.05);
filter:brightness(1.1);
}
#camaOutput {
margin-top:16px;
text-align:center;
}
#camaOutput img, #camaOutput video {
display:block;
width:100%;
max-width:100%;
height:auto;
margin:0 auto;
}
</style>
<<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG/1/0159.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0159 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+27 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Humanoid</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">This humanoid world is also guarded by the Space Marines. Their presence grows ever stronger across this region of the galaxy - and such an expansion cannot be without reason. Beneath the calm surface, something far greater is unfolding.</span></div>
<div style="text-align: center;"> <a data-passage="0159a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0159">><img src="IMG/1/0159a.png" />
The planet is under <n1>strict surveillance</n1> and guarded by the <n1>Space Marines</n1>, which makes the abduction of humanoids impossible - at least for now. Still, there are ways to entertain yourself. Hidden beneath your ship’s <n1>cloaking field</n1>, you drift silently above the metropolis until something catches your eye - a humanoid transport vehicle, a train gliding gracefully through the city. Within moments, you match its speed, tap into its <n1>security network</n1>, and start scanning its passengers. One carriage in particular draws your attention. It’s less crowded than the others - <n1>the perfect target</n1>. Among the passengers, a humanoid female rises from her seat and begins walking toward the restroom. It’s time for your little game to begin. As she reaches the door and opens it, you strike. You pierce through her mind, slipping past every natural defense, and within seconds she’s yours. By the time she steps inside the cabin, she’s already <n1>completely under your control</n1>.
<img src="IMG/1/0159b.png" />
Through the humanoid’s <n1>senses</n1>, you begin to survey the surroundings, carefully analyzing every detail to make your plan even more thrilling. You have no intention of influencing the other passengers - only this single subject will serve your purpose. Through her, you intend to set in motion a chain of events that will soon <n1>escalate into corruption and chaos</n1>. Inside the small cabin, something draws your attention - a simple object, yet full of potential. A <n1>pen</n1> lies forgotten beside the sink. The perfect instrument for what you have in mind. You strip away the humanoid’s garments, searching for a patch of skin suitable for your design, and compel her to take the pen into her hand. Now, all that remains is to choose the right word - one that will mark her flesh and begin your work.
<<puzzle 3 3 "IMG/1/word.png" 480 6 "0159b">>
<<if setup.train is undefined>><<run setup.train = new Audio("music/train.mp3")>><<run setup.train.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.train.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\train.mp4" type="video/mp4">
</video>
@@
The scantily clad, disoriented humanoid quickly drew the other passengers’ attention, and the word scrawled on their skin soon gave the onlookers courage; just as you predicted, in moments <n1>the corrupt chaos</n1> you wanted erupted. It only takes the altered behavior of a single humanoid to unsettle a community - by changing one person’s actions you watch <n1>their fragile social order</n1> begin to collapse as others copy, provoke, and escalate the situation until [[control is lost.|Bridge]]<img src="IMG/1/0161.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0161 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+20 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Zenthari Subspecies</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">Though the ship’s structure appears foreign to standard Zenthari engineering, its essence unmistakably bears your people’s touch. Aboard this vessel dwell those of your kind who long ago abandoned the homeworld - Zenthari who chose a different path. </span></div>
<div style="text-align: center;"> [[Initiate docking|Cuthulu]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0161">><img src="IMG/1/0161a.png" />
These Zenthari have long since drifted away from their kin. <n2>They sacrificed science upon the altar of faith</n2> to worship a single deity - <n2>Y’thalar, Lord of the Depths of the Void</n2>. Their vessel now serves as a temple, drifting through the vastness of space as they spread the teachings of their creed. Though they are not enemies, <n2>the Zenthari Council severed all ties with them long ago</n2>. The ship’s high priest greets you. Preparations are underway for <n2>a ritual - a sacrifice to Y’thalar</n2>. Yet, the proper offering has not been found. As the priest speaks, you begin to wonder - perhaps you could offer one of your own humanoids. He claims they are capable of <n2>summoning their god into physical form</n2>. It’s hard to believe; back home, you were always told that these Zenthari <n2>worship only the shadow of a false god</n2>. But now, the moment may come when the truth is revealed. All it requires is <n2>a small sacrifice</n2>.
<div style="text-align: center;"> <<if $human >= 1>> [[Sacrifice a humanoid]] <<else>> <n2>Get a humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.cult is undefined>><<run setup.cult = new Audio("music/cult.mp3")>><<run setup.cult.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.cult.play().catch(()=>{})>>They draw a rune on the ground and place the humanoid at its center. The ritual begins - soft chants echo through the chamber, rising and falling like waves of dark devotion. The rune starts to glow, its light pulsating in rhythm with the voices. Then something happens unlike anything you have ever witnessed before: <n2>the priests begin to transform</n2>. Their arms twist and elongate, reshaping into tentacle-like appendages that connect directly to the blazing symbols on the floor. The glow intensifies, flooding the chamber in crimson light. The ship trembles as <n2>the ground splits open</n2>, revealing a darkness that seems to move on its own. From the rift, something emerges - you cannot tell if it is truly their god or <n2>something entirely different</n2>. All you know is that it reaches out toward the humanoid…
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\cult1.mp4" type="video/mp4">
</video>
@@
The so-called <n2>“divine tentacles”</n2> seize the humanoid and lift it high above the glowing rune. First, they coil around its limbs, locking them in place - ensuring there is no escape, though there never truly was. Then, new tentacles emerge, unlike the first ones: <n2>these are not meant for restraint but for communion</n2>. The connection begins to form; the entity and the humanoid become intertwined in ways beyond understanding. The tentacles <n2>pierce into the humanoid’s body</n2>, merging flesh with the unknown. You cannot tell whether the being is consuming the victim, searching for something within, or simply acting out the same <n2>corrupt cosmic will</n2> that drives the universe itself.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\cult2.mp4" type="video/mp4">
</video>
@@
What you witness takes its toll on the fragile humanoid body - its limits are tested, perhaps even surpassed. Yet, once again, the humanoids surprise you. The body <n2>adapts</n2>, enduring the impossible and surviving the process. It remains alive, or at least until the tentacles <n2>drag it down into the depths</n2>. From that moment on, its fate is unknown. What the high priest promised has come to pass - you have witnessed a <n2>summoning</n2>, though what exactly emerged, you cannot say. Was it their god, or something else entirely? Either way, it has been an <n2>intriguing encounter</n2> - meeting a different branch of [[your own kind.|Ship]]
<<set $human -= 1>><img src="IMG/1/0162.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);">
<b>OBJECT ID:</b><span style="color:#d64141;"> 0162 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−270 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A barren dwarf planet drifts silently through the void. Scattered across its cratered surface lie the shattered remains of a crashed vessel - fragments of metal glint faintly in the distant starlight, the last trace of a forgotten voyage.</span> </div>
<<if $pics20 is true>><div style="text-align: center;"> <a data-passage="0162a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0162">><div class="hover-image-wrapper"><img src="IMG/1/162.png" class="main-image" alt="comics"><a data-passage="0162b" class="hover-link link-internal link-image"><img src="IMG/1/0162a.png" class="hover-image" alt="comics"></a></div>
A crashed spaceship. No survivors. Debris scattered everywhere. Yet among the twisted wreckage, something might still remain - <n3>valuable or dangerous</n3>. It may be worth taking a closer look at the ruins.
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=2>>
<<set $pics20 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG/1/0163.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0163 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+35 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Multiple higher life forms</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">An enchanted forest world filled with bioluminescent flora, shimmering rivers, and towering trees glowing in hues of blue and violet. The air hums with ancient magic, and the atmosphere radiates serene vitality.</span></div>
<div style="text-align: center;"> <a data-passage="0163a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0163">><img src="IMG/1/0163a.png" />
As you enter the planet’s atmosphere, you quickly realize that the entire surface is covered by a single, interconnected forest - a living network wrapping around the world like a breathing organism. Every <n1>lifeform</n1> is bound to this vast web, each one depending on the other in a delicate balance. In the distance, you notice <n1>movement</n1> - several creatures fleeing at the sight of your arrival. Among them are <n1>hybrid beings</n1> of both higher and lower order, strange mixtures of animal and humanoid traits. One in particular draws your attention: a <n1>half-humanoid, half-animal</n1> entity. The ship’s database identifies it as a <n1>Satyr</n1> - a peaceful forest dweller with no extraordinary power or ability. Capturing it would be unnecessary, yet observing it could yield valuable data. To lure them closer, you’ll need <n1>bait</n1> - something foreign to them, yet familiar enough to spark their curiosity.
<div style="text-align: center;"> <<if $human >= 1>> [[Send a humanoid to the planet's surface|0163b]] <<else>> <n2>Get a humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.mf is undefined>><<run setup.mf = new Audio("music/mf.mp3")>><<run setup.mf.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.mf.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\satyr.mp4" type="video/mp4">
</video>
@@
As you move away and leave the <n1>humanoid</n1> behind, the <n1>satyrs</n1> begin to appear. First one, then more, emerging from the glowing undergrowth until they surround the figure completely. They watch with curiosity, stepping closer, reaching out to touch its <n1>hair</n1>, then its <n1>skin</n1> - the parts that resemble their own. Then, suddenly, <n1>chaos</n1> erupts. The satyrs you believed to be <n1>female</n1> are not what they seemed - yet they are not <n1>male</n1> either. They are something entirely different. Their behavior shifts abruptly; their movements turn <n1>aggressive</n1>. They encircle the humanoid, and then <n1>hunt it down</n1> like prey. It is a fascinating observation: these beings can <n1>conceal</n1> or even <n1>partially alter</n1> their gender when the situation [[demands it.|Bridge]]
<<set $human -= 1>><img src="IMG/1/0164.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0164 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+18 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">An abandoned dwarf planet containing a single standing structure amid desolate terrain. The environment is calm, silent, and untouched by life or civilization.</span></div>
<<if $pics21 is true>><div style="text-align: center;"> <a data-passage="0164a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0164">><img src="IMG/1/0164a.png" />
In the center of the abandoned structure stands a <n1>galactic canvas</n1>. Scattered around it lie several <n1>paint tubes</n1>, some still half-open, their colors long dried into shimmering fragments. It seems someone left in great <n1>haste</n1>, abandoning everything behind. As you gaze upon the canvas, a strange feeling begins to rise within you - an <n1>urge to create</n1>, something you’ve never experienced before. You’ve seen countless paintings throughout your journeys, yet you’ve never tried to <n1>create</n1> one yourself. Perhaps this is the moment to <n1>discover the artist</n1> that has been quietly waiting within you all along.<div style="text-align: center;">[[Paint something]]</div><div style="text-align: center;">[[Back|Bridge]]</div>
<<puzzle 3 3 "IMG/1/paint1.png" 480 6 "0164b">>
You take the brush and begin to paint. You imagine yourself after the <n1>battle</n1>, standing over your <n1>defeated prey</n1>. Yet as your work takes form, traces of <n1>humanoid corruption</n1> seep into it. Too much time spent in this corner of the <n1>galaxy</n1> has begun to affect your <n1>mind</n1>.
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG/1/mindfli.png" style="max-width:666px; height:auto;" />
<div style="text-align: center;">Your creation is complete - now give it a name:<br>
<input id="paintingName" type="text" style="width:300px;"
onkeydown="if(event.key==='Enter'){SugarCube.State.variables.paintingName=this.value; SugarCube.Engine.play('Bridge');}">
<div style="text-align:center;font-size:12px;color:#ccc;margin-top:4px;">Press Enter when you’re done</div>
</div>
<<set $pics21 to false>>
<<set $picsmd to true>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0165.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#6fa8dc;"> 0165 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+14 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">One sentient entity – <n1>The Moon Warden</n1></span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A newly discovered Moon Shrine lies hidden within the crescent’s depths - guarded by an ancient being of light.</span></div>
<div style="text-align: center;"> <a data-passage="shrinem" class="link-internal link-image"><img src="IMG\shrine.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0165">>
<<set $b165 to true>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\marww1.mp4" type="video/mp4">
</video>
@@
The <n1>Moon Warden</n1> - guardian of galactic wisdom. Yet, this time, you have no need for its counsel. You do not disturb it; instead, you let it relish the gift you’ve brought.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if $minoStage is 1>> <<goto "shrinem2">> <</if>>
<<if $minoStage is 2 or $minoStage is 3 or $minoStage is 4>>
<<goto "shrinem3">>
<</if>><img src="IMG\1\minotaur1.png" />
<div style="border: 2px solid #2585a6; padding: 12px; color: #2585a6; font-family: monospace; font-size: 14px; line-height: 1.4;">
<b>Name:</b> <n3>MINOTAUR</n3><br>
<b>Type:</b> <n3>Spirit-Animal</n3><br>
<b>Habitat:</b> <n2>Unknown</n2><br>
<b>Summoning:</b> <n2>Unknown</n2><br>
<b>Containment:</b><n2>Unknown</n2><br>
<b>Location Range:</b> <n2>Unknown</n2><br>
<b>Note:</b> Knowledge must be obtained from other sources. </div>
<div style="text-align: center; font-size: 28px; color: #25737d; font-weight: bold;"> Mission status</div>
<div style="text-align: center;"><<switch $minoStage>>
<<case 1>>Locate an <n1>external information source</n1>(0160-0170)<<case 2>>Help the <n1>Moon Warden</n1> in exchange for information<<case 3>>Create the <n2>new werewolf</n2><<case 4>>Take the new <n2>Werewolf</n2> to the Warden (0165).<<case 5>>Find the labyrinth on planet <n3>0178</n3><<case 6>><img src="IMG\1\captured.png" /><</switch>></div>
<div style="text-align: center;">[[Back|Quests]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>><img src="IMG\1\0165c.png" />
This <n3>Warden</n3> greets visitors with a notably cold demeanor. The reason likely lies in the gifts she receives - things of little to no use to her. Perhaps you can change that. You ask your question: where to find the <n3>Minotaur</n3>, how to capture it, how to <n3>possess</n3> it. The Warden raises her eyebrow. Too many questions at once - such knowledge comes at a high price. Yet you are willing to pay. You strike a bargain: you will find her a being capable of giving her what she truly desires, and in return, she will share the knowledge and insight you seek. The <n3>Warden</n3> doubts you, yet since no one has ever made her such an offer before, she agrees.
<img src="IMG\1\0165d.png" />
You return to your ship and begin reviewing your resources. The right creature must come from your own collection. A single humanoid - or even several - wouldn’t be suitable. The size difference between the <n3>Warden</n3> and ordinary humanoids is too great; the result would be the same as what you’ve already seen. The horse is too primitive for this task. The <n3>horse-human</n3> is strong and roughly the right size but lacks endurance - raw power that fades too quickly. The <n3>Xenomorph</n3> is also unfit, too fragile for this; it’s built for speed and sudden strikes, not stamina. The dog is out of the question, and the <n3>Yako</n3> is far too unpredictable - though a shapeshifter, it could become unstoppable near a Warden. Only one of your creatures fits the criteria: the <n3>Werewolf</n3>. Fast, strong, and tireless. Yet even he is still too small compared to the Warden. You’ll need to find a way to <n3>increase his size</n3>. That means locating a proper hormonal treatment - but where could you possibly find such a thing in [[this corner of the galaxy?|Bridge]]
<<if setup.lady is undefined>><<run setup.lady = new Audio("music/lady.mp3")>><<run setup.lady.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.lady.play().catch(()=>{})>>
<<set $minoStage to 2>><img src="IMG\1\0165a.png" />
Another <n3>Moon Shrine</n3>. This place radiates an aura as strong as the previous <n3>Warden</n3> sanctuary, yet its essence feels different - darker. Perhaps that’s why it seems even <n3>stronger</n3>. The shrine is empty; the Warden is nowhere to be seen. After a short walk, you find her in another chamber of the temple, accompanied by a <n3>humanoid</n3>. At first glance, the scene might suggest the Warden is at ease, but her posture and expression reveal the truth: she is <n3>bored</n3>.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/mar1.mp4" type="video/mp4">
</video>
@@
The <n3>humanoid</n3> is doing everything in its power to please the <n3>Warden</n3>, moving with nervous energy and desperate intent. Exhaustion is visible in its every motion, yet it does not stop. Despite all effort, the Warden remains unimpressed - lying still, calmly reading her book, occasionally letting out a long, <n3>bored sigh</n3>.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/mar2.mp4" type="video/mp4">
</video>
@@
<n3>"Useless, worthless being,"</n3> the <n3>Warden</n3> sighs aloud, easily pushing the <n3>humanoid</n3> aside as she shifts position. Compared to her, a male humanoid seems small and fragile - effortless to move, effortless to control. Now, with the roles reversed, the Warden no longer appears quite as bored. There is a spark of <n3>amusement</n3> in her eyes; command, after all, seems to suit her.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/mar3.mp4" type="video/mp4">
</video>
@@
However, just as the <n3>Warden</n3> began to enjoy herself, the amusement came to an end. The <n3>humanoid</n3> couldn’t keep up with the harsh pace and quickly reached its limits. The Warden exhaled once more - a long, <n3>disappointed sigh</n3> echoing through the quiet chamber. While she makes her final movements and the humanoid cums inside her pussy.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/mar4.mp4" type="video/mp4">
</video>
@@
<n3>"Useless trash,"</n3> the <n3>Warden</n3> hissed, her tone sharp with disdain. With a single, effortless motion, she kicked the <n3>humanoid</n3> off the bed like a discarded toy. That was the moment she noticed you - your curious gaze meeting hers. Yet she didn’t seem surprised in the slightest. Why would she care what a <n3>meaningless lifeform</n3> [[thought of her?]]
<script>
(function () {
// csak az AKTUÁLIS passage DOM-jában keresünk videókat
const passage = document.currentScript.closest('.passage') || document.body;
const videos = Array.from(passage.querySelectorAll('video'));
let current = null;
if (!videos.length) {
return; // ha nincs video, nincs dolgunk
}
function getClosestToCenter() {
const centerY = window.innerHeight / 2;
let best = null;
let dmin = Infinity;
for (const v of videos) {
const r = v.getBoundingClientRect();
const mid = r.top + r.height / 2;
const d = Math.abs(mid - centerY);
if (d < dmin) {
dmin = d;
best = v;
}
}
return best;
}
async function playWithSound(v) {
if (!v) return;
v.muted = false;
try {
await v.play();
} catch (e) {
// ha a böngésző nem engedi hanggal, némítva indítjuk
v.muted = true;
try { await v.play(); } catch (_) {}
}
}
function stopAll() {
for (const v of videos) {
try {
v.pause();
v.muted = true;
} catch (e) {}
}
current = null;
}
async function updatePlayback() {
const target = getClosestToCenter();
if (!target) {
stopAll();
return;
}
// minden nem cél-videót megállítunk, némítunk
for (const v of videos) {
if (v !== target) {
v.pause();
v.muted = true;
}
}
if (current !== target) {
current = target;
await playWithSound(target);
} else if (target.paused) {
await playWithSound(target);
}
}
function onScrollOrResize() {
updatePlayback();
}
function onVisibilityChange() {
if (document.hidden && current) {
current.pause();
} else {
updatePlayback();
}
}
// eventek bekötése
document.addEventListener('scroll', onScrollOrResize, { passive: true });
window.addEventListener('resize', onScrollOrResize);
document.addEventListener('visibilitychange', onVisibilityChange);
// amikor ELHAGYOD ezt a passage-ot: takarítás
// (SugarCube esemény – a következő passage indulásakor fut le)
$(document).one(':passagestart', function () {
stopAll();
document.removeEventListener('scroll', onScrollOrResize);
window.removeEventListener('resize', onScrollOrResize);
document.removeEventListener('visibilitychange', onVisibilityChange);
});
// induláskor első frissítés
updatePlayback();
})();
</script>
<img src="IMG\1\0165c.png" />
The <n3>Warden</n3> waits impatiently for you to deliver what you promised - a creature that is resilient, strong, swift, and tireless. A being capable of truly <n3>entertaining</n3> her.
<div style="text-align: center;"><<if $biggerww is true>> <<goto "Give her the creature">>[[Give her the creature]] <<else>> <n2>You haven't found the right creature yet</n2> <</if>></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<img src="IMG/1/0166.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0166 </span>
<br><b>TEMPERATURE:</b> <span style="color:#c0392b;">+28 °C</span>
<br><b>POPULATION:</b> <span style="color:#ffffff;">Mushroom Smurfs</span>
<br><b>DESCRIPTION:</b> <span style="color:#ffffff;">A tiny planet whose biosphere is dominated by vast fungal forests. </span></div>
<<if $pics22 is true>><div style="text-align: center;"> <a data-passage="0166a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0166">><div class="hover-image-wrapper"><img src="IMG/1/0166a.png" class="main-image" alt="comics"><a data-passage="0166b" class="hover-link link-internal link-image"><img src="IMG/1/0166b.png" class="hover-image" alt="comics"></a></div>
A vast expanse of towering fungi blankets the planet’s surface, rising in every imaginable shape and color. At first glance it feels like untouched wilderness, yet those who look closely discover a secret: nestled between thick roots and glowing stems are tiny houses - miniature doors and windows carved into the bases of the mushrooms. A hidden settlement thrives here, sustained by <n1>bioluminescent</n1> light and the quiet harmony of the forest. Every mushroom is a <n1>home</n1>, every stone a meeting point, every path a small adventure. In this delicate world, even the faintest glow can lead to <n1>wonder</n1>, and every silence holds the promise of <n1>new discoveries</n1>.
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. This particular one is extraordinary - a snapshot capturing the quiet existence of the tiny Mushroom Smurfs who dwell upon this [[fungal world.|Bridge]]
<<set $picsmurf to true>>
<<set $pics22 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG/1/0167.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0167 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+6 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Vampiric life forms</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">The planet is shrouded in demonic fog, inhabited by vampiric entities trapped between life and death. Eternal life is their reward, yet an unquenchable hunger remains their curse.</span></div>
<div style="text-align: center;"> <a data-passage="0167a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0167">><img src="IMG/1/0167a.png" />
On this planet, you’ve encountered a <n2>new breed of vampires.</n2> These creatures are much larger and stronger than any you’ve seen before. But what else sets them apart? You can find out with a quick experiment - and a <n2>small sacrifice.</n2>
<div style="text-align: center;"> <<if $human >= 1>> [[Send a humanoid to the planet's surface|0167b]] <<else>> <n2>Get a humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.light is undefined>><<run setup.light = new Audio("music/light.mp3")>><<run setup.light.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.light.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\vampi.mp4" type="video/mp4">
</video>
@@
It’s not only their physical strength and size that make them different. <n2>These vampires seem to be neither gendered nor shapeshifters.</n2> They are driven by tormenting hunger and unquenchable desire, toying with their victims as they feed on them. For them, a humanoid is both entertainment and nourishment.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human -= 1>><img src="IMG/1/0168.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0168 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+18 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">N/A</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A massive flying arcade drifts alone through space, its lights still glowing but no players remain. Once alive with noise and laughter, now it floats in silence - a relic of forgotten joy.</span></div>
<div style="text-align: center;">[[Enter the arcade]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0168">>
<<if setup.casino2 && !setup.casino2.paused>>
<<run setup.casino2.pause()>>
<<run setup.casino2.currentTime = 0>>
<</if>>
<img src="IMG\1\0100d.png" />
You won, and here's your reward. Only the Sketcher can fully decode it, but the title can already be identified in the code: <n1>Unlucky Patty’s Farm - Part I.</n1> - you’ve uncovered one of its fragments.
<div style="text-align: center;">[[Back|0168]]</div>
<<set $comicsc +=1>>
<<set $comics3b to false>><img src="IMG/1/0171d.png" />
The DNA extraction caused the <n2>wolf unbearable pain,</n2> awakening it with a pained whimper that alerted its master. With a single crushing bite, it shattered your drone into pieces. <n2>You’ve been detected…</n2> The mission would end here - but let’s turn back the wheel of time and [[try again...|swiftly and in secret]]<img src="IMG/1/0169.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0169 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+25 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Multiple higher life forms</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">Yang’Thara is a spiritually charged world divided into two eternal halves - one of shimmering white oceans, the other of dark, rugged lands.</span></div>
<div style="text-align: center;"> <a data-passage="0169a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0169">><img src="IMG/1/0168a.png" />
Inside, there is no staff - only rusted robots sitting at every table and console, motionless, as if they’ve been waiting forever for someone to enter. When you approach one of the tables, your presence awakens the robot. The lights flicker on, and its arm creaks as it rises toward you. <n1>“Are you ready to play?”</n1> it asks. <n3>“What kind of game is this?”</n3> you ask curiously. The robot replies. This is a memory game - you must remember the correct sequence and repeat it precisely. If you complete all seven levels without a mistake, you’ll receive your reward.” <n3>“What’s the reward?”</n3> you ask. The robot presses a button, and the table splits open before you as a glass container slowly rises from the depths.
<img src="IMG/1/0168b.png" />
This is one of the <n3>Sketcher’s capsules.</n3> How could it have ended up here? He left it not so long ago. Perhaps, as the arcade drifted through space, it collected the capsule that had been aimlessly floating in the void. If you want to help restore his collection, you’ll have to win this game.
<div style="text-align: center;"><<if $comics3b is true>>[[The game can begin|Memória játék]]<<else>><n3>You have already won the game</n3><</if>>
[[Back|0168]]</div>
<<if setup.casino2 is undefined>><<run setup.casino2 = new Audio("music/casino2.mp3")>><<run setup.casino2.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.casino2.play().catch(()=>{})>>
<img src="IMG/1/0168c.png" /><div id="hud">
<span class="tag">Round: <<print $round>> / 7</span>
<span class="tag">Status: <<print $message>></span>
</div><div class="squares">
<!-- Visual order: Green | Blue | Red (right-to-left highlights: Red, Blue, Green) -->
<div class="sq" data-color="green" onclick="Simon.click('green')" title="Green"></div>
<div class="sq" data-color="blue" onclick="Simon.click('blue')" title="Blue"></div>
<div class="sq" data-color="red" onclick="Simon.click('red')" title="Red"></div>
</div><div class="btnbar">
<span class="btn" onclick="Simon.replay()">🔁 Replay sequence</span>
</div><div style="text-align: center;">[[Back|0168]]</div>
<!-- Auto-start the sequence when this passage is shown -->
<<run setTimeout(() => window.Simon.playSequence($round), 0)>>
<<if setup.casino3 is undefined>><<run setup.casino3 = new Audio("music/casino3.mp3")>><<run setup.casino3.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.casino3.play().catch(()=>{})>><img src="IMG/1/0169a.png" />
The planet’s surface mirrors the duality of its sky. As you move along the shore, you witness the eternal struggle between <n1>light and darkness</n1> - the meeting of the <n1>white sea</n1> and the <n1>black stone continent</n1>. Along the coast, houses stand silently, their windows flickering with faint signs of life. The inhabitants resemble the planet itself - two beings in one form, <n1>male and female</n1> intertwined. Yang’Thara is the strange harmony of <n1>nature’s balance</n1> - a world where opposites exist as one.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\yang.mp4" type="video/mp4">
</video>
@@
You can now witness the connection between two such humanoids. They stand in opposition to each other, yet in doing so, they complete one another - <n1>two halves forming a whole,</n1> each giving what the other lacks. It is a strange balance you do not wish to disturb, so you [[simply walk away.|Bridge]]<<if $pics23 is true>><div class="hover-image-wrapper"><img src="IMG/1/0170.png" class="main-image" alt="comics"><a data-passage="0170a" class="hover-link link-internal link-image"><img src="IMG/1/0170a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01700.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0170 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">-270 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A cluster of everyday objects drifting through space - tools and belongings once tied to a humanoid lifeform, now floating aimlessly in the void.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0170">><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $picsbe to true>>
<<set $pics23 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG/1/0171.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0162 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">+16 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Two life signatures appear on the radar.</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A dwarf planet radiating a divine aura - its surface shimmers with celestial light, as if touched by the gods themselves.</span> </div>
<<if $minoStage is 2>><div style="text-align: center;"> <a data-passage="0171a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0171">><img src="IMG/1/0171a.png" />
On the small planet, your sensors quickly detected the two inhabitants - a humanoid-like being radiating a <n1>divine aura</n1> and a massive beast that resembled the wolves found on humanoid worlds, though far larger and more imposing. Fortunately, they preoccupied with one another, allowing you to remain unnoticed.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\snif.mp4" type="video/mp4">
</video>
@@
As you watch the beast, realization dawns - <n1>this is the one you’ve been searching for</n1>. Its DNA is the <n1>perfect foundation</n1> for your experiment. With it, you could create a <n1>werewolf</n1> of proper size for the Warden, one that preserves every trait of its origin. The giant wolf’s genetic code is <n1>ideal for integration</n1> - now, you only need to obtain it. You must proceed carefully, remaining undetected, for you have no idea what powers the being with the <n1>divine aura</n1> might possess. It’s best to avoid confrontation. To extract the DNA, you deploy one of your ship’s <n1>drones</n1> - it only needs to reach the target, [[swiftly and in secret]]
<img src="IMG/1/0171b.png" />
<div style="text-align: center;">The small drone glides silently toward the exhausted, sleeping wolf. As it nears, a slender syringe extends from its side - <n1>ready to collect a DNA sample.</n1> Now it’s up to you to fine-tune the mechanism remotely, ensuring the operation remains completely unnoticed.</div>
<div id="wolfGameContainer_866"><input type="range" id="wolfBlueSlider_866" min="0" max="100" value="0"><input type="range" id="wolfRedSlider_866" min="0" max="100" value="0"><p id="wolfStatus_866" style="font-family: monospace; color:#ccc;">Press <b>SPACE</b> to operate the drone...</p></div>
<script>
(function() {
const blue = document.getElementById("wolfBlueSlider_866");
const red = document.getElementById("wolfRedSlider_866");
const status = document.getElementById("wolfStatus_866");
let blueVal = 0;
let redVal = 0;
let spacePressed = false;
let gameActive = true;
// csak a "kitöltött" rész frissítése JS-ből
function updateSliders() {
blue.style.background = `linear-gradient(to right, #1A0A0E ${blueVal}%, #0b0507 ${blueVal}%)`;
red.style.background = `linear-gradient(to right, #650304 ${redVal}%, #120202 ${redVal}%)`;
}
document.addEventListener("keydown", e => {
if (e.code === "Space") {
spacePressed = true;
e.preventDefault();
}
});
document.addEventListener("keyup", e => {
if (e.code === "Space") {
spacePressed = false;
}
});
function updateGame() {
if (!gameActive) return;
if (spacePressed) {
blueVal += 0.9;
redVal += 0.6;
} else {
blueVal -= 0.8;
redVal -= 0.4;
}
blueVal = Math.max(0, Math.min(100, blueVal));
redVal = Math.max(0, Math.min(100, redVal));
updateSliders();
if (blueVal >= 100) {
gameActive = false;
status.innerHTML = "⚠ The wolf woke up! Mission failed.";
setTimeout(() => SugarCube.Engine.play("DNSend"), 1000);
return;
}
if (redVal >= 100) {
gameActive = false;
status.innerHTML = "✅ DNA sample collected successfully!";
setTimeout(() => SugarCube.Engine.play("DNSwin"), 1000);
return;
}
requestAnimationFrame(updateGame);
}
updateSliders();
updateGame();
})();
</script>
<style>
/* slider általános nullázás */
#wolfBlueSlider_866, #wolfRedSlider_866 {
width: 866px;
appearance: none;
-webkit-appearance: none;
outline: none;
border: none;
margin: 6px 0;
background: none;
position: relative;
display: block;
}
/* felső (vékonyabb, licorice #1A0A0E) */
#wolfBlueSlider_866 {
height: 5px;
border-radius: 3px;
background-color: #0b0507;
}
#wolfBlueSlider_866::-webkit-slider-runnable-track {
height: 5px;
border-radius: 3px;
background-color: #1A0A0E;
}
#wolfBlueSlider_866::-moz-range-track {
height: 5px;
border-radius: 3px;
background-color: #1A0A0E;
}
/* alsó (vastagabb, blood red #650304) */
#wolfRedSlider_866 {
height: 12px;
border-radius: 6px;
background-color: #120202;
}
#wolfRedSlider_866::-webkit-slider-runnable-track {
height: 12px;
border-radius: 6px;
background-color: #650304;
}
#wolfRedSlider_866::-moz-range-track {
height: 12px;
border-radius: 6px;
background-color: #650304;
}
/* thumb teljes eltüntetése */
#wolfBlueSlider_866::-webkit-slider-thumb,
#wolfRedSlider_866::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 0;
height: 0;
background: transparent;
}
#wolfBlueSlider_866::-moz-range-thumb,
#wolfRedSlider_866::-moz-range-thumb {
width: 0;
height: 0;
background: transparent;
border: none;
}
</style>
<<if setup.dron is undefined>><<run setup.dron = new Audio("music/dron.mp3")>><<run setup.dron.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.dron.play().catch(()=>{})>><img src="IMG/1/0171e.png" />
You did it - you’ve successfully <n1>collected the required DNA sample</n1> and remained undetected throughout the operation. Now you possess everything needed to <n1>create the new werewolf</n1>. It’s time to leave [[the planet.|Bridge]]
<<set $minoStage to 3>>
<<set $bigdns to true>><img src="IMG\1\dnsww.png" />
The DNA of the colossal wolf is now in your possession - <n1>the first step is complete.</n1> Next, you will need two vital components: <n1>a humanoid ovum</n1> and the genetic essence of the werewolf.<n1>(Semen)</n1> Under ordinary circumstances, their union would never result in life - but you are no longer bound by ordinary limits. Within the confines of your laboratory, using the Divine Aura–infused wolf DNA, you now hold the power to forge <n1>a new form of existence</n1> - one that will bring you closer to realizing your ultimate goal.
<div style="text-align: center;">[[Collect the remaining genetic materials]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\bigww1.mp4" type="video/mp4">
</video>
@@
You chose the simplest method. You brought both the <n1>humanoid</n1> and the <n1>werewolf</n1> into the lab and simply waited for the beast’s instincts to take over. This way, obtaining both required materials becomes effortless - from a single source, the humanoid’s body, you can extract both the ovum and the genetic essence. Now that all three required components are gathered, all that remains is to <n3>create the new DNA</n3>.
<<puzzle 3 3 "IMG/1/bigwwa.png" 480 6 "the genetic essence">><img src="IMG\1\dnsww2.png" />
The embryo has been placed in the <n1>cell accelerator,</n1> where it will rapidly mature into a fully developed specimen. It’s still in an early stage, yet you can already see that it will grow far <n1>larger than any of its kind.</n1> Your plan is likely to succeed. The best course of action now is to test it in the field - [[take it to the Warden.|Lab]]
<<set $minoStage to 4>>
<<set $biggerww to true>><img src="IMG\1\0165a.png" />
The <n3>Fountain of Knowledge</n3> stands empty once more. This time, however, the Warden is not in a distant corner of the sanctuary but near one of its entrances, close to the source itself. Once again, it tries to make the best possible use of the gift it received from others - <n3>a gift that still seems utterly useless to it.</n3>
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/mhu1.mp4" type="video/mp4">
</video>
@@
The physical and bodily differences between the <n3>Warden</n3> and the <n3>humanoid</n3> are now truly striking - a being standing above galaxies, and a fragile, mortal creature. The Warden lets out a sigh in which <n3>sadness</n3>, <n3>disappointment</n3>, and a faint touch of <n3>boredom</n3> all mingle together. Once again, it is in control, and so it tries to draw from the moment everything it possibly can.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/mhu2.mp4" type="video/mp4">
</video>
@@
It increases the tempo, the rhythm, but the <n3>humanoid</n3> is already exhausted, reaching its limits. The moment, just like before, ends just as the <n3>Warden</n3> is about to start enjoying the situation. With a single, slightly angry motion of its hips, it throws the humanoid against the wall. It looks down, then back, and when it notices the mark on the floor - the sign that the game is over - it lets out another <n3>disappointed sigh</n3>.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/mhu3.mp4" type="video/mp4">
</video>
@@
She steps away from the <n3>humanoid</n3>, who clings to her desperately.<n3>“Let go of me, you useless waste,”</n3> she says, her tone edged with anger. Then she notices you - and unlike the last time, she greets you with a faint smile on her face. Perhaps even a touch of <n3>excitement</n3>. After all, you are the one who represents [[hope to her.]]
<script>
(function () {
// csak az AKTUÁLIS passage DOM-jában keresünk videókat
const passage = document.currentScript.closest('.passage') || document.body;
const videos = Array.from(passage.querySelectorAll('video'));
let current = null;
if (!videos.length) {
return; // ha nincs video, nincs dolgunk
}
function getClosestToCenter() {
const centerY = window.innerHeight / 2;
let best = null;
let dmin = Infinity;
for (const v of videos) {
const r = v.getBoundingClientRect();
const mid = r.top + r.height / 2;
const d = Math.abs(mid - centerY);
if (d < dmin) {
dmin = d;
best = v;
}
}
return best;
}
async function playWithSound(v) {
if (!v) return;
v.muted = false;
try {
await v.play();
} catch (e) {
// ha a böngésző nem engedi hanggal, némítva indítjuk
v.muted = true;
try { await v.play(); } catch (_) {}
}
}
function stopAll() {
for (const v of videos) {
try {
v.pause();
v.muted = true;
} catch (e) {}
}
current = null;
}
async function updatePlayback() {
const target = getClosestToCenter();
if (!target) {
stopAll();
return;
}
// minden nem cél-videót megállítunk, némítunk
for (const v of videos) {
if (v !== target) {
v.pause();
v.muted = true;
}
}
if (current !== target) {
current = target;
await playWithSound(target);
} else if (target.paused) {
await playWithSound(target);
}
}
function onScrollOrResize() {
updatePlayback();
}
function onVisibilityChange() {
if (document.hidden && current) {
current.pause();
} else {
updatePlayback();
}
}
// eventek bekötése
document.addEventListener('scroll', onScrollOrResize, { passive: true });
window.addEventListener('resize', onScrollOrResize);
document.addEventListener('visibilitychange', onVisibilityChange);
// amikor ELHAGYOD ezt a passage-ot: takarítás
// (SugarCube esemény – a következő passage indulásakor fut le)
$(document).one(':passagestart', function () {
stopAll();
document.removeEventListener('scroll', onScrollOrResize);
window.removeEventListener('resize', onScrollOrResize);
document.removeEventListener('visibilitychange', onVisibilityChange);
});
// induláskor első frissítés
updatePlayback();
})();
</script>
<img src="IMG\1\0165c.png" />
After a brief conversation, you get straight to the point. The part of your pact that falls to you is now complete - your <n3>gift</n3>, your <n3>sacrifice</n3> to the <n3>Warden</n3>. You focus your energy and give the command; the ship’s door slowly opens, and the <n3>werewolf</n3> you have recreated steps into the sanctuary. Its steps are heavy yet deliberate. The Warden’s eyes follow its every movement - the creature stands even taller than she does. <n3>“Hmmm… promising. But what kind of performance can it deliver?”</n3> she says, already intent on finding out. If your creation can give her what she desires, then you, too, may finally obtain the <n3>answers</n3> you seek. And that will be revealed soon enough. Unbothered by your presence, the Warden was eager to see just what your werewolf was [[truly capable of.]]@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/mww1.mp4" type="video/mp4">
</video>
@@
Your creation’s proportions were perfect - it fulfilled everything you had expected of it. It did not tire, slow down, or falter. It gave the <n3>Warden</n3> everything she desired. There were no more loud, disappointed sighs - instead, the chamber was filled with <n3>satisfied, heavy breaths</n3>, exactly as you had hoped. You stood there, watching and listening, and with every moment your <n3>confidence</n3> grew. You felt that this would be enough to earn you the <n3>answers</n3> you had been seeking. Your creation had not failed you.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/mww2.mp4" type="video/mp4">
</video>
@@
In fact, not only did your creation not disappoint you - it <n3>exceeded every expectation</n3> you had. It was not only able to endure and keep up the pace, but it even <n3>took control</n3>, surprising the <n3>Warden</n3> and turning the balance of power in its favor. The rhythm became faster and faster, and the once quiet panting was replaced by louder moans that echoed around the chamber.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/mww3.mp4" type="video/mp4">
</video>
@@
The <n3>werewolf's huge knot</n3> first pressed against the Warden's body, then penetrated her. This gave the Warden something she hadn't experienced in a long time: an <n3>orgasm.</n3> You leave the room and wait outside for the Warden, because you sense that she [[needs some time.]]
<script>
(function () {
// csak az AKTUÁLIS passage DOM-jában keresünk videókat
const passage = document.currentScript.closest('.passage') || document.body;
const videos = Array.from(passage.querySelectorAll('video'));
let current = null;
if (!videos.length) {
return; // ha nincs video, nincs dolgunk
}
function getClosestToCenter() {
const centerY = window.innerHeight / 2;
let best = null;
let dmin = Infinity;
for (const v of videos) {
const r = v.getBoundingClientRect();
const mid = r.top + r.height / 2;
const d = Math.abs(mid - centerY);
if (d < dmin) {
dmin = d;
best = v;
}
}
return best;
}
async function playWithSound(v) {
if (!v) return;
v.muted = false;
try {
await v.play();
} catch (e) {
// ha a böngésző nem engedi hanggal, némítva indítjuk
v.muted = true;
try { await v.play(); } catch (_) {}
}
}
function stopAll() {
for (const v of videos) {
try {
v.pause();
v.muted = true;
} catch (e) {}
}
current = null;
}
async function updatePlayback() {
const target = getClosestToCenter();
if (!target) {
stopAll();
return;
}
// minden nem cél-videót megállítunk, némítunk
for (const v of videos) {
if (v !== target) {
v.pause();
v.muted = true;
}
}
if (current !== target) {
current = target;
await playWithSound(target);
} else if (target.paused) {
await playWithSound(target);
}
}
function onScrollOrResize() {
updatePlayback();
}
function onVisibilityChange() {
if (document.hidden && current) {
current.pause();
} else {
updatePlayback();
}
}
// eventek bekötése
document.addEventListener('scroll', onScrollOrResize, { passive: true });
window.addEventListener('resize', onScrollOrResize);
document.addEventListener('visibilitychange', onVisibilityChange);
// amikor ELHAGYOD ezt a passage-ot: takarítás
// (SugarCube esemény – a következő passage indulásakor fut le)
$(document).one(':passagestart', function () {
stopAll();
document.removeEventListener('scroll', onScrollOrResize);
window.removeEventListener('resize', onScrollOrResize);
document.removeEventListener('visibilitychange', onVisibilityChange);
});
// induláskor első frissítés
updatePlayback();
})();
</script>
<img src="IMG\1\0165q.png" />
After a short while, the <n3>Warden</n3> appears. “<n3>Well… the creature has exceeded all my expectations.</n3>” she says with a satisfied smile. She is ready to give you the <n3>answers</n3> you have been seeking. The <n3>Minotaur</n3> can be found on planet <n3>0178</n3>. The creature dwells within a labyrinth hidden beneath one of the planet’s ancient ruins, sealed away by powerful magic. The labyrinth’s <n3>curse</n3> makes it invulnerable - you cannot defeat it, nor can you control it while it remains inside. To break the curse and gain dominance over the creature, you will need <n3>Theseus' flute</n3>, which rests deep within the labyrinth. That is what you must find. However, due to the curse, <n3>you cannot enter the labyrinth yourself</n3> - only <n3>humanoids</n3> can. They alone were permitted because, when the creature was first imprisoned there, the king sacrificed many humanoids each year to appease the Minotaur. This eventually led to his downfall - and the collapse of his entire civilization. With the empire’s fall, both the labyrinth and the creature faded into <n3>oblivion</n3>. The Warden’s gaze hardens slightly, her tone turning cold: <n3>“Be prepared - the Minotaur will be furious and hungry if you encounter it before finding the flute.”</n3>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $minoStage to 5>> <img src="IMG/1/0172.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0172 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+16 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">A cursed lifeform</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">The planet appears to serve as a burial ground. It is covered with graves, and at its center stands a monument or crypt.</span></div>
<div style="text-align: center;"> <a data-passage="0172a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0172">><img src="IMG/1/0172a.png" />
The planet’s surface is barren and lifeless, yet deep within an ancient crypt resides a strange entity - a thin figure with a glowing jack-o’-lantern head, sitting silently upon a stone sarcophagus. It cannot speak, but communicates through telepathy, its thoughts <n3>fragmented</n3> and <n3>unclear</n3>. In time, you learn it calls itself <n3>The Artist</n3> - once a painter, now merely a <n3>cursed being</n3>, bound to the remnants of its creations. Its works still exist, <n3>scattered across worlds</n3>, though they remain <n3>invisible</n3> to ordinary eyes. Only those <n3>attuned</n3> to his presence can perceive them. Perhaps you’ve already <n3>passed by</n3> one unknowingly. The Artist does not ask you to seek them. Instead, it grants you <n3>knowledge</n3> - cryptic hints, not coordinates. You are not compelled to follow them, yet should you choose to, you may <n3>gather the hidden paintings</n3> and uncover what others cannot see.
<div style="text-align: center;">[[Solve the riddles to uncover the coordinates|ridle]]</div><div style="text-align: center;">[[Back|Bridge]]</div>
<<if !$hallowActivated>>
<<set $hallowActivated to true>>
<<set $hallow1 to true>>
<<set $hallow2 to true>>
<<set $hallow3 to true>>
<<set $hallow4 to true>>
<<set $hallow5 to true>>
<<set $hallow6 to true>>
<<set $hallow to true>>
<</if>>
<<if setup.hallow is undefined>><<run setup.hallow = new Audio("music/hallow.mp3")>><<run setup.hallow.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.hallow.play().catch(()=>{})>><img src="IMG/1/0172c.png" />
<div style="text-align: center;"><n3>The code is hidden between the lines, read carefully</n3></div>
<div class="artistGrid"><div class="artistFragment">
<div class="fragmentTitle">— The Artist’s Memory —</div>
Zero whispers in the hollow ground,<br>
One flame flickers without a sound.<br>
None return from the grave’s dark dive,<br>
But five soft echoes still survive.</div><div class="artistFragment">
<div class="fragmentTitle">— The Artist’s Memory —</div>
From nothing born came one dim hue,<br>
Then two faint stars in the endless blue.<br>
None may see what the circle knows —<br>
The path of zero forever glows.</div><div class="artistFragment">
<div class="fragmentTitle">— The Artist’s Memory —</div>
From the void came one pale flame,<br>
Then three more joined to speak its name.<br>
One remained when all were gone,<br>
The zero sleeps till night is done.</div><div class="artistFragment">
<div class="fragmentTitle">— The Artist’s Memory —</div>
Zero bells toll where the shadows creep,<br>
One soul wakes from its endless sleep.<br>
Three dark paths where the lost hearts pine,<br>
Nine steps lead to the artist’s shrine.</div><div class="artistFragment">
<div class="fragmentTitle">— The Artist’s Memory —</div>
Zero wind sighs through the hollow plain,<br>
One crow calls and fades again.<br>
Four cold stones where the night does dine,<br>
Nine hearts beat beneath the sign.</div><div class="artistFragment">
<div class="fragmentTitle">— The Artist’s Memory —</div>
Zero stars burn in the dying sky,<br>
One light flickers, refusing to die.<br>
Seven veils part as the echoes mix,<br>
And six cold hands the truth affix.
</div>
</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<style>
.artistGrid {
display: grid;
grid-template-columns: repeat(3, 1fr);
column-gap: 12px;
row-gap: 10px;
justify-content: center;
max-width: 860px;
margin: 0 auto;
}
.artistFragment {
border: 1px solid #5a4638;
background: rgba(10,10,10,0.85);
padding: 10px;
color: #d6b88c;
font-family: "Georgia", serif;
text-align: center;
font-size: 0.8rem;
line-height: 1.25;
min-height: 155px;
width: 100%;
box-sizing: border-box;
box-shadow: 0 0 6px rgba(200,160,60,0.08);
}
.fragmentTitle {
color: #e6c57b;
text-transform: uppercase;
letter-spacing: 1px;
font-size: 0.7rem;
margin-bottom: 5px;
}
/* mobilon 2 oszlop, kisebb max-width */
@media (max-width: 900px) {
.artistGrid {
grid-template-columns: repeat(2, 1fr);
max-width: 580px;
}
}
@media (max-width: 600px) {
.artistGrid {
grid-template-columns: 1fr;
max-width: 300px;
}
}
</style><img src="IMG/1/0176.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0176 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">−270 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">An abandoned medical spacecraft drifting silently in the void. Its emergency beacon flickers weakly, but no life signs are detected aboard.</span></div>
<<if $frame3 is true>><div style="text-align: center;"> <a data-passage="0176a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0162">>
<<if $hallow6>>
<div style="position:fixed; right:20px; bottom:20px; z-index:9999;">
<a href="javascript:void(0);" onclick="SugarCube.Engine.play('hallow6');">
<img src="IMG/pumpkin.png" alt="pumpkin" style="max-width:120px;">
</a>
</div>
<</if>><img src="IMG/1/hallow5.png" style="max-width:700px; height:auto; display:block;" />
<div style="text-align: center;">Here is one of the works the strange <n3>Cursed-Being</n3> spoke about - the painting he created, titled: <n3>Bound Within the Pyramid</n3></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $hallow5 to false>>
<<set $hallowe to true>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG/1/hallow6.png" style="max-width:700px; height:auto; display:block;" />
<div style="text-align: center;">Here is one of the works the strange <n3>Cursed-Being</n3> spoke about - the painting he created, titled: <n3>A Good Girl, Made of Slime</n3></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $hallow6 to false>>
<<set $hallowf to true>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG/1/hallow2.png" style="max-width:700px; height:auto; display:block;" />
<div style="text-align: center;">Here is one of the works the strange <n3>Cursed-Being</n3> spoke about - the painting he created, titled: <n3>The Dead Bride</n3></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $hallow2 to false>>
<<set $hallowb to true>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>>
<img src="IMG/1/hallow4.png" style="max-width:700px; height:auto; display:block;" />
<div style="text-align: center;">Here is one of the works the strange <n3>Cursed-Being</n3> spoke about - the painting he created, titled: <n3>A Toy for Halloween</n3></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $hallow4 to false>>
<<set $hallowd to true>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG/1/hallow3.png" style="max-width:700px; height:auto; display:block;" />
<div style="text-align: center;">Here is one of the works the strange <n3>Cursed-Being</n3> spoke about - the painting he created, titled: <n3>The Forest That Smiles</n3></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $hallow3 to false>>
<<set $hallowc to true>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG/1/hallow1.png" style="max-width:700px; height:auto; display:block;" />
<div style="text-align: center;">Here is one of the works the strange <n3>Cursed-Being</n3> spoke about - the painting he created, titled: <n3>Pleasures of the Beyond</n3></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $hallow1 to false>>
<<set $hallowa to true>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><div class="art-grid3">
<<if $pics > 0>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/bonds.png" alt="Bonds">
<figcaption class="art-cap">Title: <n3>“Bonds”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 1>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/infinit.png" alt="To Infinity and Beyond!">
<figcaption class="art-cap">Title: <n3>“To Infinity and Beyond!”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 2>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/deluge.png" alt="Deluge">
<figcaption class="art-cap">Title: <n3>“Deluge”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 3>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/wardenart.png" alt="Moon Warden">
<figcaption class="art-cap">Title: <n3>“Moon Warden”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 4>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/gallop.png" alt="Spring Gallop">
<figcaption class="art-cap">Title: <n3>“Spring Gallop”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 5>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/mask.png" alt="Mask">
<figcaption class="art-cap">Title: <n3>“Mask”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 6>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/pathbreaker.png" alt="Pathbreaker">
<figcaption class="art-cap">Title: <n3>“Pathbreaker”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 7>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/angel.png" alt="Angelic Greeting">
<figcaption class="art-cap">Title: <n3>“Angelic Greeting”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 8>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/milkoflife.png" alt="Milk of Life">
<figcaption class="art-cap">Title: <n3>“Milk of Life”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 9>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/secret.png" alt="Glowing Secrets">
<figcaption class="art-cap">Title: <n3>“Glowing Secrets”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 10>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/devilhug.png" alt="Devilish Embrace">
<figcaption class="art-cap">Title: <n3>“Devilish Embrace”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 11>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/gloryrid.png" alt="Divine Rider">
<figcaption class="art-cap">Title: <n3>“Divine Rider”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 12>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/farmlife.png" alt="Farm Life, Hard Life">
<figcaption class="art-cap">Title: <n3>“Farm Life, Hard Life”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 13>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/goblin.png" alt="Beauty of the Cave">
<figcaption class="art-cap">Title: <n3>“Beauty of the Cave”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 14>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/steps.png" alt="A Big Step">
<figcaption class="art-cap">Title: <n3>“A Big Step”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 15>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/mating.png" alt="Mating Press">
<figcaption class="art-cap">Title: <n3>“Mating Press”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 16>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/riderh.png" alt="Heavenly Rider">
<figcaption class="art-cap">Title: <n3>“Heavenly Rider”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 17>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/benedic.png" alt="Dark Benediction">
<figcaption class="art-cap">Title: <n3>“Dark Benediction”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 18>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/veil.png" alt="The Faithless Veil">
<figcaption class="art-cap">Title: <n3>“The Faithless Veil”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 19>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/mimic.png" alt="Smile of the Dungeon">
<figcaption class="art-cap">Title: <n3>“Smile of the Dungeon”</n3></figcaption>
</figure>
<</if>>
<<if $picsmd is true>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/mindfli.png" alt="Mindflayer painting">
<figcaption class="art-cap">Title: <n3><<print $paintingName>></n3></figcaption>
</figure>
<</if>>
<<if $pics > 20>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/themis.png" alt="The Fall of Themis">
<figcaption class="art-cap">Title: <n3>“The Fall of Themis”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 21>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/cursea.png" alt="Curse of the Modern Age">
<figcaption class="art-cap">Title: <n3>“Curse of the Modern Age”</n3></figcaption>
</figure>
<</if>>
<<if $pics > 22>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/demongu.png" alt="Even a Demon is Still a Guest">
<figcaption class="art-cap">Title: <n3>“Even a Demon is Still a Guest”</n3></figcaption>
</figure>
<</if>>
<<if $picsmurf is true>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/smurf.png" alt="Smurf life – it’s a tough life!">
<figcaption class="art-cap">Title: <n3>“Smurf life – it’s a tough life!”</n3></figcaption>
</figure>
<</if>>
<<if $picsbe is true>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/beachart.png" alt="Dream vacation">
<figcaption class="art-cap">Title: <n3>“Dream vacation”</n3></figcaption>
</figure>
<</if>>
</div>
<div style="text-align: center;">[[Back|paint]]</div>
<div id="lb" class="lightbox-backdrop" aria-hidden="true">
<img id="lb-img" class="lightbox-img" alt="">
</div>
<<script>>
(function(){
$(document).one(':passagedisplay.zoom', function(ev){
var $root = $(ev.content);
var $imgs = $root.find('.art-image');
// lightbox elem (ha nincs, hozzuk létre)
var $lb = $('#lb'); if (!$lb.length) {
$lb = $('<div id="lb" class="lightbox-backdrop" aria-hidden="true"><img id="lb-img" class="lightbox-img" alt=""></div>').appendTo('body');
}
var $lbImg = $('#lb-img');
// kép katt → nagyít
$imgs.on('click.zoom', function(e){
e.preventDefault();
var src = this.getAttribute('src');
var alt = this.getAttribute('alt') || '';
$lbImg.attr({src: src, alt: alt});
$lb.addClass('active').attr('aria-hidden','false');
});
// overlay katt vagy ESC → zár
function closeLB(){
$lb.removeClass('active').attr('aria-hidden','true');
$lbImg.attr('src','');
}
$lb.on('click.zoom', closeLB);
$(document).on('keydown.zoom', function(e){
if (!$lb.hasClass('active')) return;
if (e.key === 'Escape' || e.keyCode === 27) { e.preventDefault(); closeLB(); return; }
// amíg nyitva a lightbox, ne csináljon mást (pl. Space/WASD)
if ([' ','Space','w','a','s','d','W','A','S','D'].includes(e.key)) { e.preventDefault(); }
});
// takarítás
$(document).one(':passagedisplay.zoom', function(){
$imgs.off('.zoom'); $lb.off('.zoom'); $(document).off('.zoom');
});
});
})();
<</script>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><div class="art-grid3">
<<if $hallowa is true>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/hallow1.png" alt="Pleasures of the Beyond">
<figcaption class="art-cap">Title: <n3>“Pleasures of the Beyond”</n3></figcaption>
</figure>
<</if>>
<<if $hallowb is true>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/hallow2.png" alt="The Dead Bride">
<figcaption class="art-cap">Title: <n3>“The Dead Bride”</n3></figcaption>
</figure>
<</if>>
<<if $hallowc is true>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/hallow3.png" alt="The Forest That Smiles">
<figcaption class="art-cap">Title: <n3>“The Forest That Smiles”</n3></figcaption>
</figure>
<</if>>
<<if $hallowd is true>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/hallow4.png" alt="A Toy for Halloween">
<figcaption class="art-cap">Title: <n3>“A Toy for Halloween”</n3></figcaption>
</figure>
<</if>>
<<if $hallowe is true>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/hallow5.png" alt="Bound Within the Pyramid">
<figcaption class="art-cap">Title: <n3>“Bound Within the Pyramid”</n3></figcaption>
</figure>
<</if>>
<<if $hallowf is true>>
<figure class="art-card">
<img class="art-image" loading="lazy" src="IMG/1/hallow6.png" alt="A Good Girl, Made of Slime">
<figcaption class="art-cap">Title: <n3>“A Good Girl, Made of Slime”</n3></figcaption>
</figure>
<</if>>
</div>
<div style="text-align: center;">[[Back|paint]]</div>
<div id="lb" class="lightbox-backdrop" aria-hidden="true">
<img id="lb-img" class="lightbox-img" alt="">
</div>
<<script>>
(function(){
$(document).one(':passagedisplay.zoom', function(ev){
var $root = $(ev.content);
var $imgs = $root.find('.art-image');
// lightbox elem (ha nincs, hozzuk létre)
var $lb = $('#lb'); if (!$lb.length) {
$lb = $('<div id="lb" class="lightbox-backdrop" aria-hidden="true"><img id="lb-img" class="lightbox-img" alt=""></div>').appendTo('body');
}
var $lbImg = $('#lb-img');
// kép katt → nagyít
$imgs.on('click.zoom', function(e){
e.preventDefault();
var src = this.getAttribute('src');
var alt = this.getAttribute('alt') || '';
$lbImg.attr({src: src, alt: alt});
$lb.addClass('active').attr('aria-hidden','false');
});
// overlay katt vagy ESC → zár
function closeLB(){
$lb.removeClass('active').attr('aria-hidden','true');
$lbImg.attr('src','');
}
$lb.on('click.zoom', closeLB);
$(document).on('keydown.zoom', function(e){
if (!$lb.hasClass('active')) return;
if (e.key === 'Escape' || e.keyCode === 27) { e.preventDefault(); closeLB(); return; }
// amíg nyitva a lightbox, ne csináljon mást (pl. Space/WASD)
if ([' ','Space','w','a','s','d','W','A','S','D'].includes(e.key)) { e.preventDefault(); }
});
// takarítás
$(document).one(':passagedisplay.zoom', function(){
$imgs.off('.zoom'); $lb.off('.zoom'); $(document).off('.zoom');
});
});
})();
<</script>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG/1/0173.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0173 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+15 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Cursed lifeforms</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A twisted sphere of mannequin flesh and pine, where forgotten souls take shape again.</span></div>
<div style="text-align: center;"> <a data-passage="0173a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0173">><img src="IMG/1/0173a.png" />
The planet’s surface is strange - the ground forms an odd, shifting mass. Soil, fallen leaves, and the disjointed parts of plastic mannequins merge together, creating the body of the planet itself. There is no flesh, no blood, no real life here - and yet, something lives. Whispering, it speaks through the wind. It tries to talk to you. It asks - a soul. Or rather, <n3>they</n3> ask, for more than one voice rises at once. Will you give the restless spirits what they desire? Or will you simply <n3>move on</n3>, leaving this strange planet behind?
<div style="text-align: center;"> <<if $male >= 1>> [[Send a humanoid to the planet's surface|0173b]] <<else>> <n2>⚠ Get a (male)humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.whis is undefined>>
<<run setup.whis = new Audio("music/whis.mp3")>>
<<run setup.whis.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.whis.play().catch(()=>{})>><div class="hover-image-wrapper"><img src="IMG/1/0176a.png" class="main-image" alt="comics"><a data-passage="0176b" class="hover-link link-internal link-image"><img src="IMG/1/01760.png" class="hover-image" alt="comics"></a></div>
The room is shrouded in dim light; the faulty ceiling panels flicker sporadically, <n1>casting eerie shadows across the rusting metal walls.</n1> In the center stands a medical bed, the sheets wrinkled as if someone left in a hurry. Abandoned cables snake across the floor like severed veins that no longer carry life.
<div style="text-align: center;">[[Back|Bridge]]</div>@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/manoq1.mp4" type="video/mp4">
</video>
@@
As the humanoid stepped onto the planet’s surface, a <n3>strong wind</n3> swept through the trees. From the ground, <n3>several body parts emerged</n3>, slowly intertwining to <n3>form a new body</n3>. The figure then approached the humanoid you had sacrificed. <n3>It accepted your generous offering</n3> - and <n3>pounced upon it like a beast</n3>, as a predator tears apart its prey.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/manoq2.mp4" type="video/mp4">
</video>
@@
When it was done, it <n3>rose into the air</n3> and then <n3>fell apart once more</n3>. New limbs emerged from the ground, and from the plastic, <n3>a new body began to form</n3>. This happened again and again. Each of them <n3>threw itself upon the humanoid</n3> - each one craving a piece of the offering, <n3>a fragment of the soul</n3> you had given.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/manoq3.mp4" type="video/mp4">
</video>
@@
The humanoid's body, stamina, and soul are consumed by the cursed puppets riding on its cock. You don’t know when they will be done. <n3>More and more mannequins appear</n3>, their bodies rising from the soil to join the endless cycle. You no longer wait to see the end - you simply stand in silence for a moment, then [[leave the humanoid behind|Bridge]]
<script>
(function () {
// csak az AKTUÁLIS passage DOM-jában keresünk videókat
const passage = document.currentScript.closest('.passage') || document.body;
const videos = Array.from(passage.querySelectorAll('video'));
let current = null;
if (!videos.length) {
return; // ha nincs video, nincs dolgunk
}
function getClosestToCenter() {
const centerY = window.innerHeight / 2;
let best = null;
let dmin = Infinity;
for (const v of videos) {
const r = v.getBoundingClientRect();
const mid = r.top + r.height / 2;
const d = Math.abs(mid - centerY);
if (d < dmin) {
dmin = d;
best = v;
}
}
return best;
}
async function playWithSound(v) {
if (!v) return;
v.muted = false;
try {
await v.play();
} catch (e) {
// ha a böngésző nem engedi hanggal, némítva indítjuk
v.muted = true;
try { await v.play(); } catch (_) {}
}
}
function stopAll() {
for (const v of videos) {
try {
v.pause();
v.muted = true;
} catch (e) {}
}
current = null;
}
async function updatePlayback() {
const target = getClosestToCenter();
if (!target) {
stopAll();
return;
}
// minden nem cél-videót megállítunk, némítunk
for (const v of videos) {
if (v !== target) {
v.pause();
v.muted = true;
}
}
if (current !== target) {
current = target;
await playWithSound(target);
} else if (target.paused) {
await playWithSound(target);
}
}
function onScrollOrResize() {
updatePlayback();
}
function onVisibilityChange() {
if (document.hidden && current) {
current.pause();
} else {
updatePlayback();
}
}
// eventek bekötése
document.addEventListener('scroll', onScrollOrResize, { passive: true });
window.addEventListener('resize', onScrollOrResize);
document.addEventListener('visibilitychange', onVisibilityChange);
// amikor ELHAGYOD ezt a passage-ot: takarítás
// (SugarCube esemény – a következő passage indulásakor fut le)
$(document).one(':passagestart', function () {
stopAll();
document.removeEventListener('scroll', onScrollOrResize);
window.removeEventListener('resize', onScrollOrResize);
document.removeEventListener('visibilitychange', onVisibilityChange);
});
// induláskor első frissítés
updatePlayback();
})();
</script>
<<set $male -= 1>><img src="IMG/1/0174.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0174 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+38 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Humanoid</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A devastating viral outbreak has consumed the planet, twisting its inhabitants into mindless husks. Civilization has collapsed, and the air still carries the echo of their endless hunger.</span></div>
<<if $male13 is true>><div style="text-align: center;"><a data-passage="0174a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height:150px; height:auto; width:auto;"></a></div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0174">>
<img src="IMG/1/0174a.png" />
As you enter the planet’s atmosphere, you immediately notice how few of the once-dominant species remain. The <n3>handful of surviving humanoids</n3> struggle desperately to stay alive, and among them one healthy male specimen is fleeing from <n3>a horde of infected</n3>. Saving him would not be difficult - a single command and <n3>your gravitational beam</n3> could lift him to safety, and it might even be beneficial since you could use him later. Yet something else stirs within you: <n3>curiosity</n3>, the urge to observe rather than intervene. Perhaps it’s worth seeing what happens if you <n3>do nothing</n3>. Now you must decide: will you save him - or <n3>leave everything to nature</n3>? You can raise him into the air or use your mind control to seal his fate and <n3>see the end of your peculiar experiment</n3>.
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<a data-passage="0174b" class="link-internal link-image">
<img src="IMG/control.png" alt="0174b" style="width: 300px;">
</a>
<a data-passage="Grab" class="link-internal link-image">
<img src="IMG/grab.png" alt="Grab" style="width: 300px;">
</a>
</div>
<<set $male += 1>>
<<set $male13 to false>>As you make your decision, the humanoid <n2>turns into an alley</n2>, jumps over a fence, and manages to shake off part of the horde. But <n2>one infected slips through</n2>. Now is your moment to end the chase. <n2>With mind control, you halt his movement</n2>; the infected catches up and <n2>throws itself upon him</n2>. At first, it doesn’t bite into his flesh but instead <n2>tears at his clothes</n2> with wild, guttural growls echoing through the narrow passage.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\plague.mp4" type="video/mp4">
</video>
@@
Although she's starving, she doesn't bite him, but kneels down, takes his penis in her mouth, and <n2>starts sucking.</n2> Is this how the virus spreads? Sexually? Oh no... you're wrong... it was just a kind of foreplay, the last entertainment of the corrupt plague. There's a bloody mark from the bite. <n2>The virus is there in the humanoid's body.</n2> However, they don't stop, they continue what they [[started earlier.|Bridge]]
<<set $male -= 1>>
<<set $mindIdx = (typeof $mindIdx === "number") ? (($mindIdx % 4) + 1) : 1>>
<<set _roll = $mindIdx>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind1.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind2.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind3.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind4.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 5>>
<!-- üres, nem indul semmi -->
<</switch>>
<img src="IMG/1/0175.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0175 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+50 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Two passengers</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A humanoid spacecraft with an unusually high internal temperature. The exact cause remains undetermined, yet one of its chambers displays an abnormal thermal signature.</span></div>
<<if $firepotion is true>><div style="text-align: center;">[[Back|Bridge]]</div><<else>><div style="text-align: center;"> [[Initiate docking|Firepo]]</div><</if>>
<<set $lastvisit to "0175">><img src="IMG/1/0175a.png" />
You approach the ship with peaceful intent, signaling your wish to board, and you are granted permission faster than expected. Once inside, a humanoid greets you, giving off the unmistakable impression of a scientist the moment you see them: precise movements, attentive gaze, calm presence. The interior confirms your assumption - no weapon systems, no defensive structures, only research consoles, data modules, and laboratory equipment arranged throughout the vessel. As you converse, your initial intuition proves correct: the humanoid is here for research purposes, searching for a rare component needed to complete an invention - a <n1>serum capable of granting their body resistance to extreme heat</n1>. Everything is already prepared, except for <n1>one final missing ingredient</n1>. Yet something continues to bother you: one particular chamber of the ship emits an unnaturally high level of heat, far beyond what the vessel’s systems could logically produce. The longer you stay, the stronger your suspicion grows that this room and the missing ingredient are connected. Eventually, you turn to the scientist and ask them why they need <n1>such a serum</n1>, and what they intend to do with such a capability.
<img src="IMG/1/0175b.png" />
The humanoid leads you to the chamber that emits the intense heat, and the door slowly opens with a faint mechanical hiss. A blinding light pours out, far too bright to discern anything at first. As your eyes gradually adjust, a figure becomes visible at the center of the radiance - somewhat humanoid, yet undeniably something different. Her body glows, radiating such overwhelming heat that the air itself trembles around her. Instinctively, the question forms in your mind: <n3>what kind of being is this?</n3> The scientist smiles, as if your question were the most natural thing in the world, and answers softly: <n3>“She is not a being… she is my wife.”</n3> As the conversation continues, you learn that the feminine figure belongs to a rare and heat-born elemental species known as the <n3>Therisian</n3>. The humanoid met her during his travels, and since then their bond has only deepened. Yet their love has never been able to fully flourish, because the heat surrounding her <n3>would burn his body almost instantly</n3>. He has never been able to touch her - not even for a single moment. That is why he needs the last missing component: a serum that would finally allow him to <n3>touch the one he loves</n3>. To create it, he requires a substance called <n3>“magma cream”</n3>, produced within the bodies of magma slimes. He has been searching for months, but has not found a single planet where the material exists. At least - not them. Your ship’s database, however, contains exact coordinates where the substance can be found. Now, only one question remains: <n3>will you help them achieve what has always been impossible</n3>?
<div style="text-align: center;"> <<if $firepo is true>>[[Give the Magma Cream]]<<else>> <n2>Obtain the Magma Cream from planet 0179</n2><</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG/1/0175m.png" />
You hand over the final ingredient, and the humanoid completes the serum. He looks at you and asks you to inject it into his body. You do so. At first, nothing happens - no visible sign that the serum works. He decides there is only one way to know. He steps toward the Therisian woman and carefully touches her skin. <n3>He doesn’t burn.</n3> Realization hits, and he pulls her into a full embrace. <n3>The serum worked.</n3> As they hold each other, his clothes char and crumble away - only his body is heat-resistant, not the fabric. <n3>For the first time, they can truly hold one another.</n3>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\magmacream.mp4" type="video/mp4">
</video>
@@
It is time to leave - to give them space, so <n3>their love can finally unfold</n3> without limits. Nothing holds them back anymore. Before departing, you cast one last glance at the two of them. They cling to each other, eager to make up for all the time they lost.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $firepotion to true>><img src="IMG/1/0179.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0179 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+120 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Multiple distinct lifeforms</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A colossal portal constructed from obsidian-like stone. Its scale allows even a spacecraft to pass through with ease. The surrounding terrain radiates intense heat; nearby rock formations appear to glow from within.</span></div>
<div style="text-align: center;"><a data-passage="0179a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height:150px; height:auto; width:auto;"></a></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0179">>
<<if setup.nportal is undefined>><<run setup.nportal = new Audio("music/nportal.mp3")>><<run setup.nportal.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.nportal.play().catch(()=>{})>>
<div class="mc-row">
<a class="mc-card"
onclick="SugarCube.Engine.play('minec1')"
onkeypress="if(event.key==='Enter'){SugarCube.Engine.play('minec1')}">
<img src="IMG/1/minec1.png">
</a>
<a class="mc-card"
onclick="SugarCube.Engine.play('minec2')"
onkeypress="if(event.key==='Enter'){SugarCube.Engine.play('minec2')}">
<img src="IMG/1/minec2.png">
</a>
<a class="mc-card"
onclick="SugarCube.Engine.play('minec3')"
onkeypress="if(event.key==='Enter'){SugarCube.Engine.play('minec3')}">
<img src="IMG/1/minec3.png">
</a>
</div>
You have arrived in this strange and unusual dimension. The landscape varies in every direction, yet everything shares one common trait: <n2>everything is made of blocks.</n2> Three paths open before you. You decide which one to explore, and in what order.
<div style="text-align: center;">[[Back|Bridge]]</div>
<style>
.mc-row{
display:flex;
justify-content:center;
align-items:center;
gap:12px;
flex-wrap:wrap;
margin:10px 0;
}
.mc-card{
display:block;
width:260px; /* álló képekhez ideális */
border-radius:10px;
overflow:hidden;
box-shadow:0 2px 10px rgba(0,0,0,.35);
transition:transform 160ms ease, box-shadow 160ms ease;
cursor:pointer;
}
.mc-card img{
width:100%;
height:auto; /* NEM vágja le a képet */
display:block;
}
.mc-card:hover,
.mc-card:focus-visible{
transform:translateY(-2px) scale(1.03);
box-shadow:0 12px 24px rgba(0,0,0,.45);
}
</style>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\minecr1a.mp4" type="video/mp4">
</video>
@@
What you feel is her presence: the aura, the demonic energy radiating from her, and a few visual signs that make her identity unmistakable. What you are looking at is nothing less than a <n2>succubus</n2>. Yet even she appears different in this world - her form is angular, block-shaped, molded by the strange rules of this dimension. It is an interesting observation, but not what truly captures your attention. A group of local creatures prepares to attack her; weapons are drawn, and with a shout they charge forward. The outcome unfolds exactly as expected: the <n2>succubus</n2> easily overpowers them with her overwhelming strength.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\minecr1b.mp4" type="video/mp4">
</video>
@@
While the creatures believe they are winning, that they are the ones in control, the truth is that they had already lost long before the first strike. With every attempt they make, they only feed her power. All they accomplish is strengthening the <n2>succubus</n2> further - her influence growing over themselves, and over their world.
<div style="text-align: center;">[[Back|0179a]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\minecr2.mp4" type="video/mp4">
</video>
@@
You witness a moment in the strange local ecosystem - several different species crossing paths. <n3>As bizarre as everything here looks, their behavior is surprisingly familiar.</n3> The way they interact with each other mirrors what you have seen on countless other worlds.
<div style="text-align: center;">[[Back|0179a]]</div><img src="IMG/1/0179cu.png" />
<n2>Strange cube-shaped creatures</n2> are born from the magma, then begin moving by bouncing across the basalt platforms. The air around them shimmers from the intense heat radiating off their bodies, and the other local creatures instinctively avoid them. You, however, step closer - and decide to eliminate one of them, knowing that it is easier to examine when it’s no longer moving. As the creature collapses, a strange substance begins to seep from its body. It is greenish, sticky, and molten at the same time. According to your database, this substance is called <n2>Magma Cream</n2>.
<div style="text-align: center;">[[Back|0179a]]</div>
<<set $firepo to true>><img src="IMG/1/0177.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0177 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+38 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Multiple lower lifeforms</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">Dense jungle world teeming with aggressive wildlife. Survival depends on remaining unseen.</span></div>
<<if $movie2 is true>>...<else>><div style="text-align: center;"> <a data-passage="0177a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0177">><img src="IMG\1\frame1.png" />
What you’ve found may at first resemble the earlier paintings, but it is more than that – it is a <n1>Parallax Frames.</n1> While it does contain paintings, it’s not just a single one: it holds two or even more images, tightly bound together, as if capturing the very moments of a motion. <n1>One is the beginning, the other the end.</n1>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $nurseframes to true>>
<<set $frame3 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><div id="pf5" class="pf-wrap"><div class="pf-stage"><img class="pf-a" src="IMG/1/nurseframe1.png" alt="frame A"><img class="pf-b" src="IMG/1/nurseframe2.png" alt="frame B"><img class="pf-c" src="IMG/1/nurseframe3.png" alt="frame C"></div><div style="text-align:center;">
<n3>Sample Collection</n3> - unknown painter <n1>(Stellar Date 13.367Δ)</n1>
</div><div class="pf-slider-wrap"><input class="pf-slider" type="range" min="0" max="100" value="0" aria-label="Parallax mixer"></div></div><div style="text-align:center;">[[Back|pframes]]</div>
<style>
/* konténer */
.pf-wrap { max-width: 866px; margin: 0 auto 18px; }
/* képszínpad */
.pf-stage{
display: grid;
position: relative;
width: 100%;
overflow: hidden;
border-radius: 10px;
/* opcionális fix képarány:
aspect-ratio: 16/9; */
}
/* rétegek egymás felett */
.pf-stage img{
grid-area: 1/1;
width: 100%;
height: auto;
object-fit: cover; /* ha aspect-ratio aktív, ne torzítson */
user-select: none;
pointer-events: none;
}
.pf-a{ opacity:1; transition: opacity 120ms linear; }
.pf-b{ opacity:0; transition: opacity 120ms linear; }
.pf-c{ opacity:0; transition: opacity 120ms linear; }
/* csúszka */
.pf-slider-wrap{ display:flex; justify-content:center; margin-top:12px; }
.pf-slider{
width:min(520px,90%);
height:10px; border-radius:999px;
appearance:none; -webkit-appearance:none; outline:none;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
box-shadow:0 0 0 1px rgba(0,0,0,.35) inset, 0 2px 10px rgba(0,0,0,.25);
}
.pf-slider::-webkit-slider-runnable-track{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
}
.pf-slider::-webkit-slider-thumb{
-webkit-appearance:none;
width:22px; height:22px; border-radius:50%;
background:#0fe; border:2px solid rgba(255,255,255,.85);
box-shadow:0 0 0 3px rgba(15,238,255,.25), 0 0 12px rgba(120,70,255,.55);
cursor:pointer; margin-top:-6px;
}
.pf-slider:active::-webkit-slider-thumb{ transform:scale(.96); }
.pf-slider::-moz-range-track{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
}
.pf-slider::-moz-range-progress{
height:10px; border-radius:999px;
background:linear-gradient(90deg,#18c3e0 0%, #7a3cf0 100%);
}
.pf-slider::-moz-range-thumb{
width:22px; height:22px; border-radius:50%;
background:#0fe; border:2px solid rgba(255,255,255,.85);
box-shadow:0 0 0 3px rgba(15,238,255,.25), 0 0 12px rgba(120,70,255,.55);
cursor:pointer;
}
.pf-slider:focus-visible{
box-shadow:0 0 0 3px rgba(24,195,224,.35);
transition:box-shadow .15s;
}
</style>
<<script>>
(function () {
// csak akkor, amikor a passage tényleg megjelent
$(document).one(':passagedisplay.pf5', function () {
var root = document.getElementById('pf5');
if (!root) return;
var slider = root.querySelector('.pf-slider');
var a = root.querySelector('.pf-a');
var b = root.querySelector('.pf-b');
var c = root.querySelector('.pf-c');
function update(){
var t = Number(slider.value) / 100; // 0..1
if (t <= 0.5) {
// A <-> B keverés
var s = t / 0.5; // 0..1
a.style.opacity = 1 - s;
b.style.opacity = s;
c.style.opacity = 0;
} else {
// B <-> C keverés
var s2 = (t - 0.5) / 0.5; // 0..1
a.style.opacity = 0;
b.style.opacity = 1 - s2;
c.style.opacity = s2;
}
}
slider.addEventListener('input', update);
slider.addEventListener('change', update);
update();
// ha ismered a képarányt, beállíthatod:
// root.querySelector('.pf-stage').style.aspectRatio = '16/9';
});
})();
<</script>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG/1/0177a.png" />
A second ship enters the atmosphere at the same time as yours. It looks like a <n1>civilian vessel</n1>, no weapons, no escort. You follow it out of curiosity until it lands in a clearing hidden deep in the jungle. They unload crates, set up tents, and activate <n1>high-tech filming equipment</n1>. Another film crew. You’ve seen one before, working on something unusual and exciting. Maybe this time you’ll witness something that breaks the <n1>boredom</n1>, something thrilling enough to be worth the risk. So you decide to approach them.
<img src="IMG/1/0177b.png" />
You manage to strike up a conversation with the film’s main actor. He explains what they’re doing here, and since this isn’t the first crew you’ve seen on this planet, you ask the obvious question: will this be another one of those “nature documentaries” you encountered earlier? He smiles and nods. Yes - that’s exactly what they’re trying to create. But first, they need to find the <n1>vadálat</n1>. Fortunately, you have everything required to track it down. With your <n1>tracking equipment</n1>, you can easily detect its traces in the dense undergrowth and follow the trail. All you need is a single <n1>clue</n1> to begin.
<<puzzle 3 3 "IMG/1/paint1.png" 480 6 "0177b">>
<<if setup.csics is undefined>>
<<run setup.csics = new Audio("music/csics.mp3")>>
<<run setup.csics.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.csics.play().catch(()=>{})>><img src="IMG/1/0177.png" />
The search brought results quickly - within a short time, you located the strange hybrid creature. The moment you spotted it, you stepped back and let the crew and the actor take over. From here on, the process required patience. The actor approached carefully, using every movement to show that he <n1>meant no harm</n1>. The hybrid was wary at first, but gradually became <n1>bolder</n1>, eventually stepping out from the bushes. Its eyes no longer held fear - only <n1>curiosity</n1>. After a few minutes, it behaved almost friendly, and the actor was able to <n1>touch it</n1>. From that point on, <n1>everything began to accelerate</n1>.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/bigcat1.mp4" type="video/mp4">
</video>
@@
This was the moment when the real filming began. You may not understand filmmaking, but even from the side you can tell that the creature is doing <n1>perfectly</n1>. It gives the crew exactly what they want - and gives the actor even more.Although it’s a wild predator, instinct doesn’t control it: its claws remain <n1>retracted</n1>, and it uses its teeth with <n1>care</n1>. It doesn’t injure the actor.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/bigcat2.mp4" type="video/mp4">
</video>
@@
The creature uses its <n1>deep throat,</n1> and even the actor can no longer bear it. He covers the creature's body with his <n1>life essence.</n1> This marked the end of the shoot. Thanks to you, they were able to create a [[perfect film|Bridge]]
<<set $movie2 to true>>
<script>
(function () {
// csak az AKTUÁLIS passage DOM-jában keresünk videókat
const passage = document.currentScript.closest('.passage') || document.body;
const videos = Array.from(passage.querySelectorAll('video'));
let current = null;
if (!videos.length) {
return; // ha nincs video, nincs dolgunk
}
function getClosestToCenter() {
const centerY = window.innerHeight / 2;
let best = null;
let dmin = Infinity;
for (const v of videos) {
const r = v.getBoundingClientRect();
const mid = r.top + r.height / 2;
const d = Math.abs(mid - centerY);
if (d < dmin) {
dmin = d;
best = v;
}
}
return best;
}
async function playWithSound(v) {
if (!v) return;
v.muted = false;
try {
await v.play();
} catch (e) {
// ha a böngésző nem engedi hanggal, némítva indítjuk
v.muted = true;
try { await v.play(); } catch (_) {}
}
}
function stopAll() {
for (const v of videos) {
try {
v.pause();
v.muted = true;
} catch (e) {}
}
current = null;
}
async function updatePlayback() {
const target = getClosestToCenter();
if (!target) {
stopAll();
return;
}
// minden nem cél-videót megállítunk, némítunk
for (const v of videos) {
if (v !== target) {
v.pause();
v.muted = true;
}
}
if (current !== target) {
current = target;
await playWithSound(target);
} else if (target.paused) {
await playWithSound(target);
}
}
function onScrollOrResize() {
updatePlayback();
}
function onVisibilityChange() {
if (document.hidden && current) {
current.pause();
} else {
updatePlayback();
}
}
// eventek bekötése
document.addEventListener('scroll', onScrollOrResize, { passive: true });
window.addEventListener('resize', onScrollOrResize);
document.addEventListener('visibilitychange', onVisibilityChange);
// amikor ELHAGYOD ezt a passage-ot: takarítás
// (SugarCube esemény – a következő passage indulásakor fut le)
$(document).one(':passagestart', function () {
stopAll();
document.removeEventListener('scroll', onScrollOrResize);
window.removeEventListener('resize', onScrollOrResize);
document.removeEventListener('visibilitychange', onVisibilityChange);
});
// induláskor első frissítés
updatePlayback();
})();
</script>
<img src="IMG/1/0178.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0178 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+29 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Hybrid lifeforms created from divine energy</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">Once inhabited by a humanoid civilization, only their ruins remain. The planet is now shaped by ancient divine forces that gave rise to new life.</span></div>
<<if $minoStage is 5>><div style="text-align: center;"><a data-passage="0178a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height:150px; height:auto; width:auto;"></a></div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if $minoStage is 5>><div style="text-align: center;"><n2>Warning: This mission requires a significant amount of humanoid resources. Only proceed if you are certain you no longer need that many humanoids elsewhere.</n2></div><</if>>
<<set $lastvisit to "0178">><div class="mc-row">
<a class="mc-card"
onclick="SugarCube.Engine.play('mino1')"
onkeypress="if(event.key==='Enter'){SugarCube.Engine.play('mino1')}">
<img src="IMG/1/mino1.png">
</a>
<a class="mc-card"
onclick="SugarCube.Engine.play('mino2')"
onkeypress="if(event.key==='Enter'){SugarCube.Engine.play('mino2')}">
<img src="IMG/1/mino2.png">
</a>
<a class="mc-card"
onclick="SugarCube.Engine.play('mino3')"
onkeypress="if(event.key==='Enter'){SugarCube.Engine.play('mino3')}">
<img src="IMG/1/mino3.png">
</a>
</div>
Using your radar, you try to navigate this world buried in ruins. <n3>The scanner highlights three possible locations.</n3> All three show high activity, which means there could be either a <n3>powerful creature</n3> hiding among the remains… or <n3>a larger population.</n3> Now you just have to find out what exactly is waiting for you there.
<div style="text-align: center;">[[Back|Bridge]]</div>
<style>
.mc-row{
display:flex;
justify-content:center;
align-items:center;
gap:12px;
flex-wrap:wrap;
margin:10px 0;
}
.mc-card{
display:block;
width:260px; /* álló képekhez ideális */
border-radius:10px;
overflow:hidden;
box-shadow:0 2px 10px rgba(0,0,0,.35);
transition:transform 160ms ease, box-shadow 160ms ease;
cursor:pointer;
}
.mc-card img{
width:100%;
height:auto; /* NEM vágja le a képet */
display:block;
}
.mc-card:hover,
.mc-card:focus-visible{
transform:translateY(-2px) scale(1.03);
box-shadow:0 12px 24px rgba(0,0,0,.45);
}
</style>
<img src="IMG/1/mino1a.png" />
The ruined pathway leads up the mountainside, ending where the broken marble steps meet the entrance of a vast cavern. Something is inside-yet you cannot enter yourself, for as the Warden warned, <n3>only humanoids are able to cross into places sealed by prophecies and ancient magic</n3>. If you want to know what waits beyond the darkness, you have only two options: <n3>send a humanoid inside and attempt to lure whatever is inside out</n3>, or <n3>enter their mind and witness what they see through their own eyes</n3>.
<div style="text-align: center;"> <<if $human >= 1>> [[Send a humanoid into the cave|mino1a]] <<else>> <n2>Get a humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|0178a]]</div>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\mino1av.mp4" type="video/mp4">
</video>
@@
The cave does not hide the entrance to the Minotaur’s labyrinth, but something entirely different: a nest. According to your ship’s database, it belongs to <n3>harpies - hybrid creatures of bird and humanoid origin</n3>. They are not particularly strong, but with their <n3>advantage in numbers</n3>, they can easily snatch away any unarmed humanoid. Once someone enters their territory, they quickly become <n3>prey</n3>, and the harpies… enjoy playing with their catch.
<div style="text-align: center;">[[Back|0178a]]</div>
<<set $human -= 1>><img src="IMG/1/mino2a.png" />
The path lined with ruins leads into a valley, and from there to the entrance of a massive cave. Something is inside-yet you cannot enter yourself, for as the Warden warned, <n3>only humanoids are able to cross into places sealed by prophecies and ancient magic</n3>. If you want to know what waits beyond the darkness, you have only two options: <n3>send a humanoid inside and attempt to lure whatever is inside out</n3>, or <n3>enter their mind and witness what they see through their own eyes</n3>.
<div style="text-align: center;"> <<if $human >= 1>> [[Send a humanoid into the cave|mino2a]] <<else>> <n2>Get a humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|0178a]]</div>
<img src="IMG/1/mino2b.png" />
The humanoid didn’t even need to enter the cave - the creature hiding inside had already begun to move. Heavy footsteps echoed from the darkness, and as it drew closer, the outline of its massive body slowly emerged. Finally, a single glowing yellow eye became visible: <n3>a Cyclops</n3>. With one swift motion, it seized the humanoid who was frozen in fear. It roughly tore away anything in the way, removing every obstacle between them with brutal efficiency.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/cyc1.mp4" type="video/mp4">
</video>
@@
He holds the humanoid in his hands like a toy doll. He uses the strength of his arms to force the humanoid's body to adapt. His massive cock presses against her, then pushes inside. Even for someone like you - a traveler who has seen almost everything - the sight is unbelievable.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/cyc2.mp4" type="video/mp4">
</video>
@@
With each thrust, he penetrates deeper into the humanoid's body until <n3>finally his entire penis is inside.</n3> Another moment when the humanoid species manages to impress you.<n3> Once again, you witness an unbelievable feat</n3> - the humanoid is still alive. You can’t fully assess the extent of the injuries yet, but surviving this much already defies logic. As for the cyclops - yes, it possesses <n3>tremendous physical strength</n3>, but that is where its advantages end. Its vision is poor, it is stubborn, intellectually primitive, and its movements are slow and clumsy. It only managed to grab the humanoid because the target wasn’t moving at all. Despite that strength, the creature would be <n3>useless to you</n3> - nothing more than wasted space. So you decide to [[leave it behind|0178a]]
<script>
(function () {
// csak az AKTUÁLIS passage DOM-jában keresünk videókat
const passage = document.currentScript.closest('.passage') || document.body;
const videos = Array.from(passage.querySelectorAll('video'));
let current = null;
if (!videos.length) {
return; // ha nincs video, nincs dolgunk
}
function getClosestToCenter() {
const centerY = window.innerHeight / 2;
let best = null;
let dmin = Infinity;
for (const v of videos) {
const r = v.getBoundingClientRect();
const mid = r.top + r.height / 2;
const d = Math.abs(mid - centerY);
if (d < dmin) {
dmin = d;
best = v;
}
}
return best;
}
async function playWithSound(v) {
if (!v) return;
v.muted = false;
try {
await v.play();
} catch (e) {
// ha a böngésző nem engedi hanggal, némítva indítjuk
v.muted = true;
try { await v.play(); } catch (_) {}
}
}
function stopAll() {
for (const v of videos) {
try {
v.pause();
v.muted = true;
} catch (e) {}
}
current = null;
}
async function updatePlayback() {
const target = getClosestToCenter();
if (!target) {
stopAll();
return;
}
// minden nem cél-videót megállítunk, némítunk
for (const v of videos) {
if (v !== target) {
v.pause();
v.muted = true;
}
}
if (current !== target) {
current = target;
await playWithSound(target);
} else if (target.paused) {
await playWithSound(target);
}
}
function onScrollOrResize() {
updatePlayback();
}
function onVisibilityChange() {
if (document.hidden && current) {
current.pause();
} else {
updatePlayback();
}
}
// eventek bekötése
document.addEventListener('scroll', onScrollOrResize, { passive: true });
window.addEventListener('resize', onScrollOrResize);
document.addEventListener('visibilitychange', onVisibilityChange);
// amikor ELHAGYOD ezt a passage-ot: takarítás
// (SugarCube esemény – a következő passage indulásakor fut le)
$(document).one(':passagestart', function () {
stopAll();
document.removeEventListener('scroll', onScrollOrResize);
window.removeEventListener('resize', onScrollOrResize);
document.removeEventListener('visibilitychange', onVisibilityChange);
});
// induláskor első frissítés
updatePlayback();
})();
</script>
<<set $human -= 1>><img src="IMG/1/mino3a.png" />
A city must have stood here once - perhaps even a palace. Even in ruins, the structure is impressive, despite having been built with what appears to be primitive technology. Between the broken halls and the marble columns, only the wind moves, and only its whisper can be heard. So where is the life the radar detected? There - right beneath your feet. You just need to <n3>find the way down</n3>.
<img src="IMG/1/mino3b.png" />
Here is the entrance - sealed with magical runes, just as the Warden warned. You cannot enter, but your humanoids are ready to descend. In direct combat, they stand no chance against the Minotaur, but that isn’t the objective. What you’re after is <n3>Theseus' flute</n3> - according to the Warden, only with this artifact will you be able to defeat, and even control, the creature.
<div style="text-align: center;"> <<if $human >= 1>> [[Send down a humanoid]] <<else>> <n2>Get a humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|0178a]]</div>
Use the WASD keys or the on-screen buttons to navigate — your goal is to find Theseus' flute
<div id="maze-wrap">
<div id="maze-container"></div>
</div>
<div style="text-align: center;">[[Back|mino3]]</div>
<div style="text-align: center;"> Use the <n3>WASD keys</n3> or the <n1>on-screen buttons</n1> to navigate - your goal is to find <n3>Theseus' flute</n3></div>
<<silently>>
/* Mindig reseteljük a player start pozíciót */
<<set $player = {
x: $maze.tiles[1].indexOf("S"),
y: 1,
visited: {}
}>>
<</silently>>
<<if setup.labimusic is undefined>><<run setup.labimusic = new Audio("music/labimusic.mp3")>><<run setup.labimusic.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.labimusic.play().catch(()=>{})>>
<img src="IMG/1/mimiclab.png" />
<div style="text-align: center;">"<n2>A dead end</n2> - but luckily, the <n2>Minotaur</n2> is nowhere to be seen. However, there's a chest here that might contain <n2>Theseus' flute</n2> But you'll only know once the humanoid opens it.</div>
<div style="text-align: center;">[[Open the chest|Mimic1]]</div>
<div style="text-align: center;">[[Back|mino3]]</div>
<<if setup.labimusic && !setup.labimusic.paused>>
<<run setup.labimusic.pause()>>
<<run setup.labimusic.currentTime = 0>>
<</if>>
<<if $flute0 is true>> <<goto "flute2">><</if>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\chest1.mp4" type="video/mp4">
</video>
@@
"As soon as the humanoid touches it, the <n2>chest</n2> suddenly snaps open on its own. From the darkness inside, writhing <n2>tentacles</n2> lash out, grabbing the humanoid and pulling them toward the opening. The chest begins to distort and shift - twisted <n2>arms</n2> sprout from its sides, helping to restrain its prey. The humanoid struggles, but the grip only tightens. There is <n2>no escape</n2>. The chest is alive."
<div style="text-align: center;">This humanoid has <n2>failed</n2> the mission, but you can send down a [[new one|mino3]]</div>
<<set $human -= 1>><img src="IMG/1/minlab.png" />
A <n2>dead end</n2>. And now the <n2>Minotaur</n2> has caught the scent as well. It approaches the humanoid with heavy, furious breathing. It has been a long time since it last took a victim - far too long since it smelled the skin of a humanoid. For the humanoid, there is <n2>no escape</n2>. The only exit is blocked by the Minotaur. The corridor narrows. Its breath is getting closer. <n2>Fate is inevitable.</n2>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\minoend1.mp4" type="video/mp4">
</video>
@@
The <n2>Warden</n2> was right - after all those years of waiting, the <n2>Minotaur</n2> is hungrier than ever. You can see it: it doesn’t hesitate, it doesn’t give time - it acts, doing whatever it takes to get what it wants.
<div style="text-align: center;">This humanoid has <n2>failed</n2> the mission, but you can send down a [[new one|mino3]]</div>
<<set $human -= 1>>
<<if setup.labimusic && !setup.labimusic.paused>>
<<run setup.labimusic.pause()>>
<<run setup.labimusic.currentTime = 0>>
<</if>><img src="IMG/1/minlab.png" />
A <n2>dead end</n2>. And now the <n2>Minotaur</n2> has caught the scent as well. It approaches the humanoid with heavy, furious breathing. It has been a long time since it last took a victim - far too long since it smelled the skin of a humanoid. For the humanoid, there is <n2>no escape</n2>. The only exit is blocked by the Minotaur. The corridor narrows. Its breath is getting closer. <n2>Fate is inevitable.</n2>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\minoend2.mp4" type="video/mp4">
</video>
@@
The <n2>Warden</n2> was right - after all those years of waiting, the <n2>Minotaur</n2> is hungrier than ever. You can see it: it doesn’t hesitate, it doesn’t give time - it acts, doing whatever it takes to get what it wants.
<div style="text-align: center;">This humanoid has <n2>failed</n2> the mission, but you can send down a [[new one|mino3]]</div>
<<set $human -= 1>>
<<if setup.labimusic && !setup.labimusic.paused>>
<<run setup.labimusic.pause()>>
<<run setup.labimusic.currentTime = 0>>
<</if>><img src="IMG/1/minlab.png" />
A <n2>dead end</n2>. And now the <n2>Minotaur</n2> has caught the scent as well. It approaches the humanoid with heavy, furious breathing. It has been a long time since it last took a victim - far too long since it smelled the skin of a humanoid. For the humanoid, there is <n2>no escape</n2>. The only exit is blocked by the Minotaur. The corridor narrows. Its breath is getting closer. <n2>Fate is inevitable.</n2>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\minoend3.mp4" type="video/mp4">
</video>
@@
The <n2>Warden</n2> was right - after all those years of waiting, the <n2>Minotaur</n2> is hungrier than ever. You can see it: it doesn’t hesitate, it doesn’t give time - it acts, doing whatever it takes to get what it wants.
<div style="text-align: center;">This humanoid has <n2>failed</n2> the mission, but you can send down a [[new one|mino3]]</div>
<<set $human -= 1>>
<<if setup.labimusic && !setup.labimusic.paused>>
<<run setup.labimusic.pause()>>
<<run setup.labimusic.currentTime = 0>>
<</if>><img src="IMG/1/minlab.png" />
A <n2>dead end</n2>. And now the <n2>Minotaur</n2> has caught the scent as well. It approaches the humanoid with heavy, furious breathing. It has been a long time since it last took a victim - far too long since it smelled the skin of a humanoid. For the humanoid, there is <n2>no escape</n2>. The only exit is blocked by the Minotaur. The corridor narrows. Its breath is getting closer. <n2>Fate is inevitable.</n2>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\minoend4.mp4" type="video/mp4">
</video>
@@
The <n2>Warden</n2> was right - after all those years of waiting, the <n2>Minotaur</n2> is hungrier than ever. You can see it: it doesn’t hesitate, it doesn’t give time - it acts, doing whatever it takes to get what it wants.
<div style="text-align: center;">This humanoid has <n2>failed</n2> the mission, but you can send down a [[new one|mino3]]</div>
<<set $human -= 1>>
<<if setup.labimusic && !setup.labimusic.paused>>
<<run setup.labimusic.pause()>>
<<run setup.labimusic.currentTime = 0>>
<</if>><img src="IMG/1/goblab.png" />
Another <n2>dead end</n2>. And it seems the <n2>Minotaur</n2> is not the only creature down here. Over the years, other things have infested the depths of the labyrinth. It may not be the Minotaur that finds the humanoid first...
but the result is the same - the humanoid will <n2>never return</n2>.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\goblinend.mp4" type="video/mp4">
</video>
@@
<div style="text-align: center;">This humanoid has <n2>failed</n2> the mission, but you can send down a [[new one|mino3]]</div>
<<set $human -= 1>>
<<if setup.labimusic && !setup.labimusic.paused>>
<<run setup.labimusic.pause()>>
<<run setup.labimusic.currentTime = 0>>
<</if>><img src="IMG/1/mimiclab.png" />
<div style="text-align: center;"><n2>A dead end</n2> - but luckily, the <n2>Minotaur</n2> is nowhere to be seen. However, there's a chest here that might contain <n2>Theseus' flute</n2> But you'll only know once the humanoid opens it.</div>
<div style="text-align: center;">[[Open the chest|Whistle]]</div>
<div style="text-align: center;">[[Back|mino3]]</div>
<<if $flute0 is true>> <<goto "flute2">> <</if>>
<<if setup.labimusic && !setup.labimusic.paused>>
<<run setup.labimusic.pause()>>
<<run setup.labimusic.currentTime = 0>>
<</if>>
<img src="IMG/1/thflute.png" />
You finally found it! This is <n2>Theseus' Flute</n2> - but even though the flute is here, it is not yours yet. Your humanoid must make it back to the surface <n2>alive</n2>.
<div style="text-align: center;">[[Guide the humanoid back]]</div>
<<set $flute0 to true>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\minoend5.mp4" type="video/mp4">
</video>
@@
You could already taste <n2>victory</n2>, but it still slipped away. The <n2>Minotaur</n2> caught your humanoid before it could reach the exit. But this is not the end - you may try again, as long as you still have another <n2>humanoid</n2> to send.
<div style="text-align: center;">This humanoid has <n2>failed</n2> the mission, but you can send down a [[new one|mino3]]</div>
<<set $human -= 1>>
<<set $flute0 to false>>
<<if setup.labimusic && !setup.labimusic.paused>>
<<run setup.labimusic.pause()>>
<<run setup.labimusic.currentTime = 0>>
<</if>>Passage Text
<!-- 4) A meglévő HTML konténer – ez triggerei a renderelést -->
<div id="maze-wrap">
<div id="maze-container"></div>
</div>
<div style="text-align: center;">The way back is not safe. Do everything you can to avoid the <n2>Minotaur</n2>.</div>
<<set $enemy = { x: 1, y: 1, startX: 1, startY: 1, active: true }>><<set $maze = $maze>> /* ha kell, új maze beállítás */<<run setup.Maze.render()>> <<silently>>
/* 1) A visszaút pálya csempéi */
<<set $maze = $maze or {}>>
<<set $maze.tiles = [
"############################",
"#1#...#.##.......#.........#",
"#...#....#.###.#.#.#.#.###.#",
"##.#####.#.#.#.#.#.#.###...#",
"#......#.#.....###..##.###.#",
"#.#.##.....#.#.#...#....#..#",
"#.#....#####.#.##.##.#..#.##",
"#.####.........#..S#.##...##",
"#.#....##..#.#######.#..#.##",
"#...##..#.##.....#...#..#..#",
"#.#.#.#........#...#....##.#",
"#.#....###..#.###.##.#.....#",
"#.####.........#..#..#.#.#.#",
"#.#..###.##.##......##.###.#",
"#..#.....#.....##.#.....#..#",
"############################"
]>>
/* 2) Méretek frissítése */
<<set $maze.width = $maze.tiles[0].length>>
<<set $maze.height = $maze.tiles.length>>
/* 3) Játékos indulópozíció: az S sorának indexe (itt 7. sor, 0-indexelve) */
<<set $player = {
x: $maze.tiles[7].indexOf("S"),
y: 7,
visited: {}
}>>
/* (OPCIONÁLIS) Ellenség indítása ugyanitt – ha kell az új minigame-hez
Ha nem kell, töröld ezt a blokkot. Példa indulópont (x:1,y:1):
*/
/* <<set $enemy = { x: 1, y: 1, startX: 1, startY: 1, active: true }>> */
<</silently>>
<<if setup.labimusic is undefined>><<run setup.labimusic = new Audio("music/labimusic.mp3")>><<run setup.labimusic.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.labimusic.play().catch(()=>{})>><img src="IMG/1/flute.png" />
At last, you <n3>hold the key to your mission:</n3> the flute that can control the Minotaur. All that remains is to use it. Its sound will bend the creature’s will and lead it out of the labyrinth - if you cannot enter, then it must come out. Although this is the first time you’re holding such an instrument in your hand, it doesn’t matter. <n3>You don’t have to play a melody</n3> - just produce a few simple notes. So you bring it to your lips, blow into it, and focus on the command.
<img src="IMG/1/flute2.png" />
You hear the <n3>minotaur’s heavy footsteps</n3> growing closer, echoing through the stone corridors until they suddenly fall silent. With one swift, brutal motion, he tears open the exit and towers before you, his gaze hollow, his movements obedient, completely under the influence of the flute. Now he focuses solely on you, ready to carry out your commands. <n3>Your mission is complete: you have captured the minotaur.</n3> Another creature crossed off your list - another subject [[to experiment on.|Bridge]]
<<set $minoStage to 6>>
<<set $minotaur to true>>
<<if setup.labimusic && !setup.labimusic.paused>>
<<run setup.labimusic.pause()>>
<<run setup.labimusic.currentTime = 0>>
<</if>><img src="IMG\1\lab2.png" />
<div class="labReadout">Current stock of humanoid test subjects suitable for DNA synthesis: <br> ⟶ Female units: <n3><<print $human>></n3>
⟶ Male units: <n3><<print $male>></n3>
</div><div class="sys-terminal"><div class="sys-header">⟨ AVAILABLE EXPERIMENT PROTOCOLS ⟩</div><div class="sys-line">▼ Authorized Hybridization Sequences:</div><<if $humanoid and $horse>><div class="sys-entry">⤷ [[Humanoid × Horse]]</div><</if>><<if $humanoid and $kentaur>><div class="sys-entry">⤷ [[Humanoid × Centaur]]</div><</if>><<if $humanoid and $horsehuman>><div class="sys-entry">⤷ [[Humanoid × Horse-Human]]</div><</if>><<if $humanoid and $dog>><div class="sys-entry">⤷ [[Humanoid × Dog]]</div><</if>><<if $humanoid and $werewolf>><div class="sys-entry">⤷ [[Humanoid × Werewolf]]</div><</if>><<if $humanoid and $oni>><div class="sys-entry">⤷ [[Humanoid × ONI]]</div><</if>><<if $humanoid and $yako>><div class="sys-entry">⤷ [[Humanoid × Yako]]</div><</if>><<if $humanoid and $xeno>><div class="sys-entry">⤷ [[Humanoid × Xeno]]</div><</if>><<if $humanoid and $minotaur>><div class="sys-entry">⤷ [[Humanoid × Minotaur]]</div><</if>><div class="sys-footer">⟨ END OF PROTOCOL LIST ⟩</div>
</div>
<div style="text-align: center;">[[Back|Lab]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\minobreed.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #25737d; padding: 12px; color: #25737d; font-family: monospace; font-size: 14px; line-height: 1.0;">
<b>PROCESS: SYNTHESIS</b><br>
<b>DNA SEQUENCES:</b> HUMANOID + MINOTAUR<br>
<span style="color:#28a745;">STATUS: SUCCESS</span><br>
<b>RESULT:</b> <n1>Hybrid organism successfully created.</n1><br>
<b>SPECIES NAME:</b> <n3>Minotaurina</n3><br>
<b>DESCRIPTION:</b> A new hybrid creature has been created - a blend of human and bovine traits. It looks more human than a minotaur and behaves with greater intelligence and self-control. It understands commands, recognizes patterns, and acts by reason rather than instinct.<br> </div>
<<if $cowgirl is true>><div style="text-align: center;">[[Back|humsub]]</div><<else>><div style="text-align: center;">[[Observe the new hybrid|CowGirl]]</div><</if>>
<img src="IMG\1\cowgirl.png" />
Although the creature is <n1>unique and intriguing,</n1> it possesses no traits that are useful to you. <n1>For your mission, it has no real value.</n1> However, you know <n1>someone who might be very interested in it</n1> - for them, this creature could be valuable, and they might even buy it from you.
<div style="text-align: center;">[[Back|humsub]]</div>
<<set $cowgirl to true>>
<<set $sellcowgirl to true>>
<img src="IMG\1\0102a.png" />
A friendly face greet you. They listen to your offer with interest, and the moment they see your product, they become certain: <n3>they want to buy it.</n3> Not only that - they are willing to pay an exceptionally <n3>high price for it, using the local currency of this remote sector of the galaxy.</n3> This currency holds no value on <n3>Xelyar Prime,</n3> but here, it might take you far.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $sellcowgirl to false>>
<<set $lotmoney to true>><img src="IMG/1/0180.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0180</span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+24 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Aquatic lifeforms</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A full ocean world with no visible landmasses. A thin contrail marks the atmospheric path of an unidentified vessel skimming the planet’s surface.</span></div>
<<if $male14 is true>><div style="text-align: center;"><a data-passage="0180a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height:150px; height:auto; width:auto;"></a></div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0180">><img src="IMG/1/0180a.png" />
The ship performed an emergency landing and reached the water <n1>without taking damage</n1>, but it did not remain on the surface. It sank and became trapped below. From the depths, an unknown creature wrapped its <n1>massive tentacles</n1> around the hull, holding it in place and preventing it from rising. Your sensors detect <n1>two life signs</n1> beneath the water: a man and a woman are still alive. The tentacles keep them separated, unable to reach each other, and their <n1>oxygen supply is rapidly decreasing</n1>. You know there is no time - if you want to save someone, <n1>you can only choose one</n1>. Do you save the [[man]] or the [[woman]] or [[neither|Bridge]]?
<<set $male14 to false>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\waten2.mp4" type="video/mp4">
</video>
@@
The tentacles coil tightly around <n1>the human’s body</n1>, wrapping it further and further. The creature’s grip <n1>keeps strengthening</n1> as more tendrils latch on. Pulling them free will be difficult - but if you gather <n1>every ounce of strength</n1>, you might just succeed.
<<set $b0180b_value = 1>><<set $b0180b_intervalID = 0>><<set $b0180b_done = false>>
<div id="sliderWrap_b0180b">
<div id="sliderDisplay_b0180b">
<div id="sliderFill_b0180b"></div>
<img id="sliderIcon_b0180b" src="IMG/1/suc.png" alt="icon">
</div>
<div style="text-align: center;"><img src="IMG\1\spacek.png" /></div>
</div>
<style>
#sliderWrap_b0180b { max-width: 866px; margin: 0 auto 12px auto; }
/* A sáv */
#sliderDisplay_b0180b {
position: relative;
width: 100%;
height: 40px;
background: #121019;
border: 1px solid #2b2238;
border-radius: 6px;
overflow: visible; /* engedi, hogy az ikon kilógjon */
}
/* Kitöltés réteg */
#sliderFill_b0180b {
position: absolute;
top: 0; left: 0;
height: 100%; width: 0%;
background: #0e0818; /* futás közben az ikon színéből frissül */
border-radius: 5px 0 0 5px;
transition: width .1s linear, background .25s ease;
}
/* Ikon fix mérettel */
#sliderIcon_b0180b {
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
left: 0%;
width: 128px; height: 128px;
pointer-events: none;
filter: drop-shadow(0 0 4px rgba(0,0,0,.85));
}
#tapHint_b0180b { font-size: .9em; opacity: .75; margin: 6px 0 10px; }
</style>
<!-- rejtett minta az átlag szín mintavételéhez -->
<img id="colorSampler_b0180b" src="IMG/1/suc.png" alt="sampler" style="display:none;"/>
<<script>>
(function () {
const clamp = (x,min,max)=>Math.max(min,Math.min(max,x));
const pct = v => clamp((v/50)*100, 0, 100);
// ---- egyedi azonosítók / változók ehhez a minijátékhoz ----
const ROOT_ID = "sliderDisplay_b0180b";
const FILL_ID = "sliderFill_b0180b";
const ICON_ID = "sliderIcon_b0180b";
const SAMP_ID = "colorSampler_b0180b";
const V_VAR = "$b0180b_value";
const ID_VAR = "$b0180b_intervalID";
const DONE_VAR = "$b0180b_done";
// ---- anti-hold / ritmus szabályozás ----
const PRESS_COOLDOWN_MS = 140; // ennyi időnként számít egy leütés/kattintás
const BLOCK_KEY_REPEAT = true; // OS auto-repeat tiltása
if (typeof window._b0180bLastPress !== "number") window._b0180bLastPress = 0;
function inScope(){ return !!document.getElementById(ROOT_ID); }
function acceptPress(e, blockRepeat){
if (blockRepeat && e && e.repeat) return false; // lenyomva tartásból jövő ismétlések tiltása
const now = Date.now();
if (now - window._b0180bLastPress < PRESS_COOLDOWN_MS) return false; // túl sűrű
window._b0180bLastPress = now;
return true;
}
function setBarFromIcon(imgEl){
try{
const S=64, c=document.createElement('canvas'); c.width=S; c.height=S;
const ctx=c.getContext('2d',{willReadFrequently:true});
ctx.drawImage(imgEl,0,0,S,S);
const {data}=ctx.getImageData(0,0,S,S);
let r=0,g=0,b=0,n=S*S;
for(let i=0;i<data.length;i+=4){ r+=data[i]; g+=data[i+1]; b+=data[i+2]; }
r=Math.round(r/n); g=Math.round(g/n); b=Math.round(b/n);
const boost=c=>Math.max(0, Math.min(255, Math.round(c*1.2+12)));
const r2=boost(r), g2=boost(g), b2=boost(b);
const fill=document.getElementById(FILL_ID);
if(fill){
fill.style.background =
`linear-gradient(90deg, rgba(${r},${g},${b},0.9) 0%, rgba(${r2},${g2},${b2},0.95) 100%)`;
}
}catch(e){/* marad az alap szín */ }
}
function render(){
if(!inScope()) return;
const v = State.getVar(V_VAR);
const p = pct(v);
const fill = document.getElementById(FILL_ID);
const icon = document.getElementById(ICON_ID);
if(fill) fill.style.width = p + "%";
if(icon) icon.style.left = p + "%";
}
function clearTick(){
const id = State.getVar(ID_VAR);
if(id){ clearInterval(id); State.setVar(ID_VAR,0); }
}
function endTo(pass){
State.setVar(DONE_VAR, true);
clearTick();
Engine.play(pass);
}
function startTick(){
clearTick();
const id=setInterval(()=>{
if(State.getVar(DONE_VAR) || !inScope()){ clearTick(); return; }
let v = State.getVar(V_VAR) - 3; // fogyás
v = Math.max(0, v); // 0 a minimum
State.setVar(V_VAR, v);
render();
// NINCS veszteség 0-nál
}, 500);
State.setVar(ID_VAR, id);
}
function boost(){
if(State.getVar(DONE_VAR) || !inScope()) return;
let v=State.getVar(V_VAR)+2;
if(v>=50){
State.setVar(V_VAR,50);
render();
endTo("Grab"); // SIKER → [[Grab]]
return;
}
State.setVar(V_VAR,v);
render();
}
// --- ESEMÉNYKEZELŐK (DEFINIÁLVA!) ---
function onKey(e){
if(e.code !== "Space") return;
e.preventDefault();
if (!acceptPress(e, BLOCK_KEY_REPEAT)) return;
boost();
}
function onPointer(e){
if(e.type !== "pointerdown") return;
const bar = document.getElementById(ROOT_ID);
if (!bar) return;
// csak akkor fogadjuk el, ha a sávon belül kattint
if (e.target && e.target.closest && e.target.closest(`#${ROOT_ID}`)) {
if (!acceptPress(null, false)) return; // pointernél nincs repeat flag
boost();
}
}
// egyszeri globális bind
if(!window._b0180bBound){
document.addEventListener('keydown', onKey, {passive:false});
document.addEventListener('pointerdown', onPointer, {passive:true});
if (Story && Story.on){
Story.on('passage:before', () => { clearTick(); State.setVar(DONE_VAR, true); });
}
window._b0180bBound = true;
}
// szín beállítás a samplerből
const sampler=document.getElementById(SAMP_ID);
if (sampler && sampler.complete) setBarFromIcon(sampler);
else if (sampler) sampler.onload=()=>setBarFromIcon(sampler);
// indulás
setTimeout(()=>{ render(); startTick(); },10);
})();
<</script>>
<div style="text-align: center;">[[Back|0180b]]</div>
<<set $male += 1>>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\waten1.mp4" type="video/mp4">
</video>
@@
The tentacles coil tightly around <n1>the human’s body</n1>, wrapping it further and further. The creature’s grip <n1>keeps strengthening</n1> as more tendrils latch on. Pulling them free will be difficult - but if you gather <n1>every ounce of strength</n1>, you might just succeed.
<<set $b0180a_value = 1>><<set $b0180a_intervalID = 0>><<set $b0180a_done = false>>
<div id="sliderWrap_b0180a">
<div id="sliderDisplay_b0180a">
<div id="sliderFill_b0180a"></div>
<img id="sliderIcon_b0180a" src="IMG/1/suc.png" alt="icon">
</div>
<div style="text-align: center;"><img src="IMG\1\spacek.png" /></div>
</div>
<style>
#sliderWrap_b0180a { max-width: 866px; margin: 0 auto 12px auto; }
/* A sáv */
#sliderDisplay_b0180a {
position: relative;
width: 100%;
height: 40px;
background: #121019;
border: 1px solid #2b2238;
border-radius: 6px;
overflow: visible; /* engedi, hogy az ikon kilógjon */
}
/* Kitöltés réteg */
#sliderFill_b0180a {
position: absolute;
top: 0; left: 0;
height: 100%; width: 0%;
background: #0e0818; /* futás közben az ikon színéből frissül */
border-radius: 5px 0 0 5px;
transition: width .1s linear, background .25s ease;
}
/* Ikon fix mérettel */
#sliderIcon_b0180a {
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
left: 0%;
width: 128px; height: 128px;
pointer-events: none;
filter: drop-shadow(0 0 4px rgba(0,0,0,.85));
}
#tapHint_b0180a { font-size: .9em; opacity: .75; margin: 6px 0 10px; }
</style>
<!-- rejtett minta az átlag szín mintavételéhez -->
<img id="colorSampler_b0180a" src="IMG/1/suc.png" alt="sampler" style="display:none;"/>
<<script>>
(function () {
const clamp = (x,min,max)=>Math.max(min,Math.min(max,x));
const pct = v => clamp((v/50)*100, 0, 100);
// ---- egyedi azonosítók / változók ehhez a minijátékhoz ----
const ROOT_ID = "sliderDisplay_b0180a";
const FILL_ID = "sliderFill_b0180a";
const ICON_ID = "sliderIcon_b0180a";
const SAMP_ID = "colorSampler_b0180a";
const V_VAR = "$b0180a_value";
const ID_VAR = "$b0180a_intervalID";
const DONE_VAR = "$b0180a_done";
// ---- anti-hold / ritmus szabályozás ----
const PRESS_COOLDOWN_MS = 140; // ennyi időnként számít egy leütés/kattintás
const BLOCK_KEY_REPEAT = true; // OS auto-repeat tiltása
if (typeof window._b0180aLastPress !== "number") window._b0180aLastPress = 0;
function inScope(){ return !!document.getElementById(ROOT_ID); }
function acceptPress(e, blockRepeat){
if (blockRepeat && e && e.repeat) return false; // lenyomva tartásból jövő ismétlések tiltása
const now = Date.now();
if (now - window._b0180aLastPress < PRESS_COOLDOWN_MS) return false; // túl sűrű
window._b0180aLastPress = now;
return true;
}
function setBarFromIcon(imgEl){
try{
const S=64, c=document.createElement('canvas'); c.width=S; c.height=S;
const ctx=c.getContext('2d',{willReadFrequently:true});
ctx.drawImage(imgEl,0,0,S,S);
const {data}=ctx.getImageData(0,0,S,S);
let r=0,g=0,b=0,n=S*S;
for(let i=0;i<data.length;i+=4){ r+=data[i]; g+=data[i+1]; b+=data[i+2]; }
r=Math.round(r/n); g=Math.round(g/n); b=Math.round(b/n);
const boost=c=>clamp(Math.round(c*1.2+12),0,255);
const r2=boost(r), g2=boost(g), b2=boost(b);
const fill=document.getElementById(FILL_ID);
if(fill){
fill.style.background =
`linear-gradient(90deg, rgba(${r},${g},${b},0.9) 0%, rgba(${r2},${g2},${b2},0.95) 100%)`;
}
}catch(e){/* marad az alap szín */ }
}
function render(){
if(!inScope()) return;
const v = State.getVar(V_VAR);
const p = pct(v);
const fill = document.getElementById(FILL_ID);
const icon = document.getElementById(ICON_ID);
if(fill) fill.style.width = p + "%";
if(icon) icon.style.left = p + "%";
}
function clearTick(){
const id = State.getVar(ID_VAR);
if(id){ clearInterval(id); State.setVar(ID_VAR,0); }
}
function endTo(pass){
State.setVar(DONE_VAR, true);
clearTick();
Engine.play(pass);
}
function startTick(){
clearTick();
const id=setInterval(()=>{
if(State.getVar(DONE_VAR) || !inScope()){ clearTick(); return; }
let v = State.getVar(V_VAR) - 3; // fogyás
v = Math.max(0, v); // 0 a minimum
State.setVar(V_VAR, v);
render();
// NINCS veszteség 0-nál
}, 500);
State.setVar(ID_VAR, id);
}
function boost(){
if(State.getVar(DONE_VAR) || !inScope()) return;
let v=State.getVar(V_VAR)+2;
if(v>=50){
State.setVar(V_VAR,50);
render();
endTo("Grab"); // SIKER → [[Grab]]
return;
}
State.setVar(V_VAR,v);
render();
}
// --- ESEMÉNYKEZELŐK (DEFINIÁLVA!) ---
function onKey(e){
if(e.code !== "Space") return;
e.preventDefault();
if (!acceptPress(e, BLOCK_KEY_REPEAT)) return;
boost();
}
function onPointer(e){
if(e.type !== "pointerdown") return;
const bar = document.getElementById(ROOT_ID);
if (!bar) return;
// csak akkor fogadjuk el, ha a sávon belül kattint
if (e.target && e.target.closest && e.target.closest(`#${ROOT_ID}`)) {
if (!acceptPress(null, false)) return; // pointernél nincs repeat flag
boost();
}
}
// egyszeri globális bind
if(!window._b0180aBound){
document.addEventListener('keydown', onKey, {passive:false});
document.addEventListener('pointerdown', onPointer, {passive:true});
if (Story && Story.on){
Story.on('passage:before', () => { clearTick(); State.setVar(DONE_VAR, true); });
}
window._b0180aBound = true;
}
// szín beállítás a samplerből
const sampler=document.getElementById(SAMP_ID);
if (sampler && sampler.complete) setBarFromIcon(sampler);
else if (sampler) sampler.onload=()=>setBarFromIcon(sampler);
// indulás
setTimeout(()=>{ render(); startTick(); },10);
})();
<</script>>
<div style="text-align: center;">[[Back|0180b]]</div>
<<set $male += 1>><img src="IMG/1/0180a.png" />
You can’t tear the humanoid free from the tentacles. The creature is simply too strong. With a single pull, it drags them down into the depths - into darkness so deep that <n1>you cannot follow without the proper equipment</n1>. As they disappear below, it becomes clear: that opportunity has <n1>sunk away with the tentacles</n1>.
div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG/1/0181.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0181</span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+10 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Single crew member</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">This is a Nova-class spacecraft. A robotic lifeform recognized as an advanced and intelligent species throughout the galaxy. The ship transmits a hail signal - Nova requests permission to board your vessel.</span></div>
<div style="text-align: center;">[[Let Nova board your ship]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0181">><img src="IMG/1/0181a.png" />
Nova did not come aboard your ship by accident - she wants something from you. During her recent visit to your planet, she learned that your species has set a new goal for itself: <n1>to eliminate boredom and seek entertainment</n1>. It seems you are not alone in that pursuit. The Novas are conducting similar research, except they do not collect other species - they <n1>modify their own robotic bodies</n1>. Their focus is on sensor upgrades, circuit improvements, and experimental enhancements to their perception. That is why they travel across the galaxy: to study organic and non-mechanical lifeforms. The Nova standing before you has been traveling for a long time and has performed numerous self-upgrades. Now she wishes to test them. All she asks is that you <n1>lend her one humanoid for a few hours</n1>. She assures you no harm will come to them, and that you will receive them back intact - she promises.
<div style="text-align: center;">[[Give her a humanoid]] or [[Deny assistance|Bridge]]</div>
<<if setup.nova is undefined>><<run setup.nova = new Audio("music/nova.mp3")>><<run setup.nova.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.nova.play().catch(()=>{})>>@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/echo1.mp4" type="video/mp4">
</video>
@@
The humanoid steps forward, and the test begins - and you have a direct view of it. The first thing you notice is that Nova modeled most of her modifications on <n1>humanoid anatomy</n1>. Limb proportions, joint structure, reproductive organs - all carefully replicated in her synthetic form. It's no surprise that she wants to test these enhancements in the presence of a real humanoid.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/echo2.mp4" type="video/mp4">
</video>
@@
You begin to suspect that Nova wasn’t trying to copy only the humanoid’s external anatomy - she wanted to replicate their <n1>nervous system, senses, and brain responses</n1> as well. Otherwise this test wouldn’t make sense. But as you monitor the subject’s vitals, and see the expression on their face, it becomes clear that she didn’t succeed. Physically, Nova reproduced the humanoid form almost perfectly, yet the result she wanted was still <n1>just out of reach</n1>. In fact, she seems not only disappointed - but <n1>endlessly bored</n1>. When the humanoid reached their limit, Nova stopped the test without hesitation. She recorded the result with a flat, emotionless note of disappointment. Then she thanked you for the assistance, turned away, and [[left without another word|Bridge]]
<script>
(function () {
// csak az AKTUÁLIS passage DOM-jában keresünk videókat
const passage = document.currentScript.closest('.passage') || document.body;
const videos = Array.from(passage.querySelectorAll('video'));
let current = null;
if (!videos.length) {
return; // ha nincs video, nincs dolgunk
}
function getClosestToCenter() {
const centerY = window.innerHeight / 2;
let best = null;
let dmin = Infinity;
for (const v of videos) {
const r = v.getBoundingClientRect();
const mid = r.top + r.height / 2;
const d = Math.abs(mid - centerY);
if (d < dmin) {
dmin = d;
best = v;
}
}
return best;
}
async function playWithSound(v) {
if (!v) return;
v.muted = false;
try {
await v.play();
} catch (e) {
// ha a böngésző nem engedi hanggal, némítva indítjuk
v.muted = true;
try { await v.play(); } catch (_) {}
}
}
function stopAll() {
for (const v of videos) {
try {
v.pause();
v.muted = true;
} catch (e) {}
}
current = null;
}
async function updatePlayback() {
const target = getClosestToCenter();
if (!target) {
stopAll();
return;
}
// minden nem cél-videót megállítunk, némítunk
for (const v of videos) {
if (v !== target) {
v.pause();
v.muted = true;
}
}
if (current !== target) {
current = target;
await playWithSound(target);
} else if (target.paused) {
await playWithSound(target);
}
}
function onScrollOrResize() {
updatePlayback();
}
function onVisibilityChange() {
if (document.hidden && current) {
current.pause();
} else {
updatePlayback();
}
}
// eventek bekötése
document.addEventListener('scroll', onScrollOrResize, { passive: true });
window.addEventListener('resize', onScrollOrResize);
document.addEventListener('visibilitychange', onVisibilityChange);
// amikor ELHAGYOD ezt a passage-ot: takarítás
// (SugarCube esemény – a következő passage indulásakor fut le)
$(document).one(':passagestart', function () {
stopAll();
document.removeEventListener('scroll', onScrollOrResize);
window.removeEventListener('resize', onScrollOrResize);
document.removeEventListener('visibilitychange', onVisibilityChange);
});
// induláskor első frissítés
updatePlayback();
})();
</script>
<img src="IMG/1/0182.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0182</span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+27 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Humanoid population</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A planet inhabited by moderately advanced humanoids. Their society is evolving steadily, balancing technology with natural harmony.</span></div>
<<if $male15 is true>><div style="text-align: center;"><a data-passage="0182a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height:150px; height:auto; width:auto;"></a></div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0182">>As you enter the planet’s atmosphere and head toward a nearby settlement, you notice a lone humanoid standing in an open field, gazing at the sky through some kind of visual-enhancing device. You immediately change course - instead of the city, he becomes your new target. Even among humanoids, he appears fragile, his body structure weak, and it seems he requires external assistance just to see clearly. You decide to collect him personally - there is no need to summon your creatures.
<img src="IMG/1/0182a.png" />
You land almost beside him as you disengage your ship’s cloaking field. The humanoid notices you, but he does not run. You sense fear - but excitement overwhelms it. As you approach, he still doesn’t try to escape. He only says: <n1>“I knew it! I knew aliens were real!”</n1> That one sentence tells you everything: the inhabitants of this world have no idea that life exists elsewhere in the galaxy. Then he speaks again, even more unexpected: <n1>“Please… take me with you!”</n1> He clearly has no understanding of the dangers beyond his world. And yet, those two sentences are enough to spark your curiosity - and you decide to speak with him.
<img src="IMG/1/0182b.png" />
During your conversation, it quickly becomes clear why he wants to leave this planet. <n1>Nothing keeps him here, nothing brings him joy.</n1> His family offers no support, at the university he is <n1>the center of every humiliation</n1>, and the last person who made him a joke was the one he secretly loved. So he hoped that <n1>aliens</n1> existed - and that somewhere among the stars he might <n1>find someone who could be a friend.</n1> You usually feel <n1>no empathy</n1> toward humanoids - and even now, you feel nothing - but you recognize that he needs help. First, you convince him not to come with you; it is enough to <n1>outline what kind of fate would await him</n1> out there. The second step is offering something else: you will <n1>help him get back at those who torment him.</n1>
<img src="IMG/1/0182c.png" />
You outlined the options for him briefly and clearly: the first is that <n1>he takes revenge personally</n1> - which would essentially mean he gets what he has longed for. For that you would only need to deploy your abilities, and, to make it truly interesting, perform some “tuning-up” on his body in your lab. The second option is <n1>total annihilation</n1>, which would require nothing more than a well-positioned camera, a dog, and, of course, your abilities. After that, his life on this planet would be changed forever. The humanoid can't decide - you must decide for him: [[Help him take personal revenge]] or [[Total annihilation]]?
<<set $male15 to false>><img src="IMG/1/0182d.png" />
Your first destination is the laboratory, where you perform the necessary physical modifications on him, precisely in the areas required. After that, you head out to track down the female humanoid. With the help of your sensors and the boy’s directions, you locate her quickly: she’s in a park and just walking into a small building. <n1>This is the moment to execute your plan.</n1> The boy starts walking toward the building, while you activate your ability, ensuring that the girl won’t be able to harm him again - neither with words nor physically. Then you gently slip into the boy’s mind, pushing his moral constraints to the background and giving him the courage he needs to carry out his revenge. <n1>The decision is already in motion.</n1>
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/revengem.mp4" type="video/mp4">
</video>
@@
Thanks to the physical modifications, he has become more confident, stronger, and more balanced. With the subtle guidance of mind-control, he no longer hesitates: he steps forward decisively and without fear, finally experiencing the moment he has dreamed of for so long. His problems are not completely solved, but he is no longer the defenseless, timid figure he once was. The physical enhancements have made him stronger, and perhaps from now on he will receive more attention and respect. Yet what means even more to him is that what he hoped for has become reality - he found a friend [[among the stars.|Bridge]]
<script>
(function () {
// csak az AKTUÁLIS passage DOM-jában keresünk videókat
const passage = document.currentScript.closest('.passage') || document.body;
const videos = Array.from(passage.querySelectorAll('video'));
let current = null;
if (!videos.length) {
return; // ha nincs video, nincs dolgunk
}
function getClosestToCenter() {
const centerY = window.innerHeight / 2;
let best = null;
let dmin = Infinity;
for (const v of videos) {
const r = v.getBoundingClientRect();
const mid = r.top + r.height / 2;
const d = Math.abs(mid - centerY);
if (d < dmin) {
dmin = d;
best = v;
}
}
return best;
}
async function playWithSound(v) {
if (!v) return;
v.muted = false;
try {
await v.play();
} catch (e) {
// ha a böngésző nem engedi hanggal, némítva indítjuk
v.muted = true;
try { await v.play(); } catch (_) {}
}
}
function stopAll() {
for (const v of videos) {
try {
v.pause();
v.muted = true;
} catch (e) {}
}
current = null;
}
async function updatePlayback() {
const target = getClosestToCenter();
if (!target) {
stopAll();
return;
}
// minden nem cél-videót megállítunk, némítunk
for (const v of videos) {
if (v !== target) {
v.pause();
v.muted = true;
}
}
if (current !== target) {
current = target;
await playWithSound(target);
} else if (target.paused) {
await playWithSound(target);
}
}
function onScrollOrResize() {
updatePlayback();
}
function onVisibilityChange() {
if (document.hidden && current) {
current.pause();
} else {
updatePlayback();
}
}
// eventek bekötése
document.addEventListener('scroll', onScrollOrResize, { passive: true });
window.addEventListener('resize', onScrollOrResize);
document.addEventListener('visibilitychange', onVisibilityChange);
// amikor ELHAGYOD ezt a passage-ot: takarítás
// (SugarCube esemény – a következő passage indulásakor fut le)
$(document).one(':passagestart', function () {
stopAll();
document.removeEventListener('scroll', onScrollOrResize);
window.removeEventListener('resize', onScrollOrResize);
document.removeEventListener('visibilitychange', onVisibilityChange);
});
// induláskor első frissítés
updatePlayback();
})();
</script>
<img src="IMG/1/0182e.png" />
You went to the address given by the boy, and luckily the girl lived there and, fortunately for you and unfortunately for her, she even had a dog. <n1>You gave the boy a camera and got him close to the window.</n1> You gave him the task of recording every second of whatever happened. Then you deployed your powers. You brought both the animal and the humanoid female under your mind control.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/revenged.mp4" type="video/mp4">
</video>
@@
And then - action. The recording began. The boy could hardly believe what he was seeing, something he never would have imagined, yet he stayed focused and captured every moment. The footage he recorded was enough to finally stand up to someone who always acted superior, someone who made him feel small. Now, for the first time, he had power. He could share the recording-either right now and take immediate revenge, or later, if anyone ever tried to hurt him again. You didn’t give him a weapon in the traditional sense; <n1>you gave him proof, and with it, confidence.</n1> Yet what mattered to him most was not the leverage or the victory, but the realization that what he had hoped for became real: he found a friend [[among the stars.|Bridge]]
<script>
(function () {
// csak az AKTUÁLIS passage DOM-jában keresünk videókat
const passage = document.currentScript.closest('.passage') || document.body;
const videos = Array.from(passage.querySelectorAll('video'));
let current = null;
if (!videos.length) {
return; // ha nincs video, nincs dolgunk
}
function getClosestToCenter() {
const centerY = window.innerHeight / 2;
let best = null;
let dmin = Infinity;
for (const v of videos) {
const r = v.getBoundingClientRect();
const mid = r.top + r.height / 2;
const d = Math.abs(mid - centerY);
if (d < dmin) {
dmin = d;
best = v;
}
}
return best;
}
async function playWithSound(v) {
if (!v) return;
v.muted = false;
try {
await v.play();
} catch (e) {
// ha a böngésző nem engedi hanggal, némítva indítjuk
v.muted = true;
try { await v.play(); } catch (_) {}
}
}
function stopAll() {
for (const v of videos) {
try {
v.pause();
v.muted = true;
} catch (e) {}
}
current = null;
}
async function updatePlayback() {
const target = getClosestToCenter();
if (!target) {
stopAll();
return;
}
// minden nem cél-videót megállítunk, némítunk
for (const v of videos) {
if (v !== target) {
v.pause();
v.muted = true;
}
}
if (current !== target) {
current = target;
await playWithSound(target);
} else if (target.paused) {
await playWithSound(target);
}
}
function onScrollOrResize() {
updatePlayback();
}
function onVisibilityChange() {
if (document.hidden && current) {
current.pause();
} else {
updatePlayback();
}
}
// eventek bekötése
document.addEventListener('scroll', onScrollOrResize, { passive: true });
window.addEventListener('resize', onScrollOrResize);
document.addEventListener('visibilitychange', onVisibilityChange);
// amikor ELHAGYOD ezt a passage-ot: takarítás
// (SugarCube esemény – a következő passage indulásakor fut le)
$(document).one(':passagestart', function () {
stopAll();
document.removeEventListener('scroll', onScrollOrResize);
window.removeEventListener('resize', onScrollOrResize);
document.removeEventListener('visibilitychange', onVisibilityChange);
});
// induláskor első frissítés
updatePlayback();
})();
</script><<if $pics24 is true>><div class="hover-image-wrapper"><img src="IMG/1/0183.png" class="main-image" alt="comics"><a data-passage="0183a" class="hover-link link-internal link-image"><img src="IMG/1/0183a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01830.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0183 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">-270 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A massive crystal sphere surrounded by a powerful aura. It appears to be numbered - at least that’s your assumption based on the single star within. Perhaps there are more like it scattered across the universe.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0183">>
<<if setup.ultra is undefined>><<run setup.ultra = new Audio("music/ultra.mp3")>><<run setup.ultra.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.ultra.play().catch(()=>{})>><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics24 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0184.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0184 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+16 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Humanoid population</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A planet on the brink of destruction. Not by external forces - the humanoids themselves are the cause. War engulfs nearly the entire world.</span></div>
<<if $human21 is true>><div style="text-align: center;"> <a data-passage="0184a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0184">>
<img src="IMG\1\0184a.png" />
You fly across the planet, and everywhere you look there is <n2>destruction</n2>, <n2>smoke</n2>, and <n2>war</n2>. This is not a battle against alien lifeforms -here, <n2>humanoids fight each other</n2> endlessly. Curiosity drives you to understand the cause of their <n2>unrelenting hatred</n2>, so you decide to <n2>descend to the surface</n2> and speak with one of the warring sides. Your strange appearance at first provokes <n2>fear</n2> and <n2>hostility</n2> - they have never seen a being like you before. But eventually, you manage to <n2>convince them you are not an enemy</n2>. You explain that you wish to <n2>help</n2>, if they can make you understand <n2>what truly happened</n2> on this devastated world.
<img src="IMG\1\0184b.png" />
As revealed through the conversation, the cause of the war is <n2>multifaceted</n2> - <n2>power</n2>, <n2>religion</n2>, and <n2>succession</n2> all play their part. According to the local warlord, however, everything traces back to a single person: the <n2>Queen</n2>. She was the one who first divided the kingdom, and now she has split the world itself. They say she possesses <n2>witch-like powers</n2>, which allowed her to bend the minds of humanoids and make them follow her. It’s a long, complicated story, full of details that don’t particularly interest you. Still, now that you’re here, you have a choice - you can either <n2>end the war</n2> and <n2>expand your humanoid collection</n2> by capturing a few prisoners and perhaps the Queen herself through a well-timed <n2>mind-control strike</n2>, or simply <n2>leave</n2> - after all, this isn’t your war.
<div style="text-align: center;">[[Begin the operation]] or [[Leave|Bridge]]</div>
<<set $human21 to false>>
<<if setup.battlew is undefined>><<run setup.battlew = new Audio("music/battlew.mp3")>><<run setup.battlew.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.battlew.play().catch(()=>{})>><img src="IMG\1\0184c.png" />
<div style="text-align: center;">The <n2>crowd is massive,</n2> but the task is not impossible. Thanks to your ship, which amplifies your power, you have an advantage - yet even so you must <n2>concentrate, focus, and muster all your strength.</n2></div><<set $value = 20>><<set $intervalID = 0>><<set $gameOver = false>>
<div id="sliderDisplay"><div id="sliderFill"></div></div>
<img src="IMG/1/spacek.png" />
<div id="result"></div>
<style>
#sliderDisplay{
width:100%; height:25px; background:#1d152d; border:1px solid #22133a;
border-radius:5px; margin-bottom:10px; position:relative; overflow:hidden;
}
#sliderFill{
position:absolute; top:0; left:0; height:100%; background:#0e0818;
width:0%; border-radius:5px 0 0 5px; transition:width 0.1s;
}
#result {
margin-top: 14px;
padding: 10px;
border: 1px solid #2a1f3f;
border-radius: 6px;
background: #160f23;
}
</style>
<<script>>
(function () {
function updateDisplay() {
const fillElem = document.getElementById("sliderFill");
if (!fillElem) return;
const val = State.getVar("$value");
const fill = Math.max(0, Math.min(100, (val / 50) * 100));
fillElem.style.width = fill + "%";
}
function showOutcome(type) {
const box = document.getElementById("result");
if (!box) return;
// töröljük a doboz tartalmát, majd wikify-oljuk az üzenetet (így a link működik)
box.innerHTML = "";
const winText =
"You succeeded: most of the army is now under your control; they’ve dropped their weapons. " +
"All that remains is a quick strike against the Queen, and deploying a single creature will suffice. " +
"[[Send your werewolf onto the battlefield|WolfBattle]]";
const lossText =
"You failed to bring everyone under your control, and the effort has completely exhausted you. " +
"You can’t help now — you must rest. [[Depart|Bridge]]";
new Wikifier(box, type === "win" ? winText : lossText);
}
function teardown() {
const id = State.getVar("$intervalID");
if (id) { clearInterval(id); State.setVar("$intervalID", 0); }
if (window._elmeharcHandler) {
document.removeEventListener("keydown", window._elmeharcHandler);
window._elmeharcHandler = null;
window._elmeharcListenerAdded = false;
}
}
function endGame(type) {
State.setVar("$gameOver", true);
teardown();
showOutcome(type); // NINCS Engine.play — helyben írjuk ki az eredményt
}
function startTicking() {
const id = setInterval(() => {
if (State.getVar("$gameOver")) {
clearInterval(id);
State.setVar("$intervalID", 0);
return;
}
let val = State.getVar("$value") - 4;
val = Math.max(0, val);
State.setVar("$value", val);
updateDisplay();
if (val <= 0) endGame("loss");
}, 500);
State.setVar("$intervalID", id);
}
function onSpacePress(e) {
if (State.getVar("$gameOver")) return;
const isSpace = (e.code === "Space") || (e.keyCode === 32);
if (!isSpace) return;
let val = State.getVar("$value") + 2;
if (val >= 50) {
State.setVar("$value", 50);
updateDisplay();
endGame("win");
return;
}
State.setVar("$value", val);
updateDisplay();
}
// egyszeri, eltávolítható listener
if (!window._elmeharcListenerAdded) {
window._elmeharcHandler = onSpacePress;
document.addEventListener("keydown", window._elmeharcHandler);
window._elmeharcListenerAdded = true;
}
// indulás
setTimeout(() => { updateDisplay(); startTicking(); }, 10);
// takarítás a következő passage betöltésekor — biztonság kedvéért
$(document).one(':passageinit', function () { teardown(); });
})();
<</script>>
<img src="IMG\1\0184d.png" />
Your <n2>werewolf</n2> reached the target swiftly - the <n2>Queen</n2> had no time to summon any so-called <n2>witchcraft</n2>, and truth be told, you doubt she ever possessed such power. She was no match for your creature. The <n2>battle</n2> came to an end; the <n2>enemy forces</n2> were surrounded, the Queen <n2>defeated</n2>, and the <n2>rightful ruler</n2> reclaimed victory. In return for your <n2>aid</n2>, you asked for nothing more than a few <n2>prisoners</n2> and they were granted to you without hesitation.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\battlewolf.mp4" type="video/mp4">
</video>
@@
You let your <n2>werewolf</n2> play a little longer, tearing through what remains of the battlefield, before bringing the captured <n2>humanoids</n2> aboard your ship. The time has come to leave. The <n2>strain</n2> of using your power so broadly has <n2>exhausted</n2> you - but it was a sacrifice well worth making.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human += 1>>
<<set $male += 3>><img src="IMG\1\0185.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d67c0a;"> 0185 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+24 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">Humanoid population</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A planet inhabited by primitive humanoids at an early stage of development. Their societies are simple, relying on nature and instinct rather than technology.</span></div>
<<if $helpgirl is true>><n2> You have been here before </n2><<else>><div style="text-align: center;"> <a data-passage="0185a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0185">><img src="IMG\1\0185a.png" />
As you cross into the planet’s atmosphere, an unexpected scene unfolds before you. Along the dusty road, a primitive horse-drawn cart is moving forward when a sudden obstacle halts its progress. An old tree at the roadside collapses with a sharp crack, <n3>crushing the side of the vehicle</n3>, scattering debris as dust swirls through the air. The cart comes to an abrupt stop, its wheels groaning in protest. The female humanoid passenger emerges unharmed from the damaged cart; her initial fright fades quickly as she looks around, and for a brief moment it seems she might be safe. But the fallen tree was no accident. From within the thick bushes, shapes begin to shift. <n3>Three bandits step out</n3>, advancing with slow, threatening strides, their eyes locked on the woman as if they had been waiting for this very moment.
<img src="IMG\1\0185b.png" />
The woman quickly realizes she has no chance against such overwhelming odds. As the first bandit lunges forward, she panics and darts into the trees. Her pursuers charge after her with wild screams, <n3>rusted blades and crude, roughly carved weapons</n3> flashing in their hands. Of course, such equipment poses no real threat to you - defeating them would hardly require more than a moment’s effort. Yet there is no time for the slow, elegant methods of mind control. The situation demands swift action, and it is far more efficient to unleash <n3>one of your combat creatures</n3>, capable of dispatching these barbaric attackers in mere seconds. Not that saving the humanoid has anything to do with compassion. There is no mercy within you: the same instinct drives you that drives the bandits as well - <n3>the promise of gain</n3>. Another useful humanoid, one who could serve as a valuable asset in your future plans. <n3>Would you really let such potential go to waste?</n3>
<div style="text-align: center;">[[Save the humanoid]] or [[leave the planet behind|Bridge]]</div>
<<if setup.tree is undefined>><<run setup.tree = new Audio("music/tree.mp3")>><<run setup.tree.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.tree.play().catch(()=>{})>>
<<set $helpgirl to true>><img src="IMG\1\0185c.png" />
With a tremendous crash, kicking up a high plume of dust, the Horse-human slams into the planet’s surface. You chose him from among your creatures to strike down the bandits. These few humanoids stand no chance against him; with his immense physical superiority, he can defeat them with his bare hands without suffering even a single scratch. By the time the dust from his impact finally settles, <n3>the battle is already over</n3> - a swift and effortless victory. The humanoid woman lets out a relieved breath, and only then do you notice that she is no ordinary being - she is an elf, her pointed ears revealing her identity instantly. <n3>“Thank you, stranger… for saving me,”</n3> she says with a firm, grateful smile. <n3>“And thank your warrior as well.”</n3> You could capture her in an instant, yet once again you hesitate - and instead you find yourself speaking with her. In truth, you crave moments like these; through such encounters you hope to understand humanoids more deeply.
<img src="IMG\1\0185d.png" />
From your conversation, you learn that she lives not far from here, just beyond the other side of the forest. She is a merchant, constantly traveling, and until today she had always been fortunate enough to avoid danger - but not this time, as she became the bandits’ target. Although she already owes you her life, she still asks a favor of you. More precisely, she asks for the help of your creature, since repairing the damaged vehicle and moving the fallen log both require <n3>considerable physical strength</n3>. And after that, she also needs to somehow get <n3>the broken cart</n3> transported all the way back to her home. “I know I’m asking a lot… but I promise I will repay you,” she says, her voice uncertain yet full of hope.
@@.vid;
<video autoplay muted loop playsinline
oncontextmenu="return false;"
onpause="this.play();">
<source src="IMG/VID/elfgirl.mp4" type="video/mp4">
</video>
@@
<n3>“I know exactly how to repay you!”</n3> she said, and the tone of her voice carried a subtle hint - as if she wanted to suggest that you won’t regret it. Now the choice is yours: capture her, or help her get home.
<div style="text-align: center;">[[Help her get home]]</div><div style="text-align: center;">[[Capture the elf|Grab]]</div>
<<if setup.puf is undefined>><<run setup.puf = new Audio("music/puf.mp3")>><<run setup.puf.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.puf.play().catch(()=>{})>><img src="IMG\1\0185e.png" />
The Horse-human lifts the wagon with ease. You could transport it with your ship as well, of course, but helping her this way lets you spend more time in the elf’s company - since you already decided to assist her. You talk about a few small things along the path, but you don’t learn anything truly important. After a short walk, the two of you arrive at the elf’s home. There, she steps in front of you and, with a slightly playful tone, asks: <n3>“So… should I be grateful to you, or to your creature?”</n3>
<div style="text-align: center;">[[You owe me your gratitude]]</div><div style="text-align: center;">[[You owe him your gratitude]]</div>
<<if setup.kunc is undefined>><<run setup.kunc = new Audio("music/kunc.mp3")>><<run setup.kunc.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.kunc.play().catch(()=>{})>><img src="IMG\1\auelf1.png" />
As you answered her question, a faint smile curved her lips, and she met your gaze without looking away. <n1>The fabric slipped from her shoulder and fell soundlessly to the ground</n1>, as if the moment itself commanded it. She stepped closer, placing her palm gently against your chest, and with a subtle push she made you step back until you sank onto the stone behind you. <n1>She lowered herself to her knees before you</n1> and moved nearer with slow, deliberate confidence. The way she guided the moment unsettled you - she was leading, not you. <n1>You had never allowed anyone to dominate you before</n1>, yet this time, driven by curiosity rather than defiance, you waited… and let her take control.
<img src="IMG\1\auelf2.png" />
Every movement she made - <n1>the soft brush of her lips</n1>, the <n1>silken pressure of her fingers</n1> - was measured and precise, as if she knew exactly what she was doing and exactly how it would affect you. You had seen and experienced much on your journeys, but never anything like this. <n1>A strange, new intensity swept through your body</n1>, a sensation unlike any before. It grew, slowly taking hold of you, rising from within until you felt unsteady, as if something was slipping out of your control. And with that realization came a spark of unease - <n1>this shouldn’t be happening… not like this, not this easily</n1>.
<img src="IMG\1\auelf3.png" />
<n1>"How is she doing this?"</n1> you ask yourself, the thought cutting through the haze for a brief moment. A sense of deception coils in your chest—she is no ordinary elven girl, that much is certain. There is something far beyond the natural in her touch and presence. Whatever she is doing, it must be magic… a charm, an enchantment, some subtle trick of the mind. Without such forces, no one could evoke a reaction like this - <n1>or so you’ve always believed</n1>.
<img src="IMG\1\auelf4.png" />
You began to doubt her, yet at the same time you found yourself <n1>quietly, unwillingly admiring her</n1>. But there was no more time left for reflection; just as sudden as the whole encounter had been, <n1>its end struck you just as swiftly</n1>. You reached the height of pleasure, unable to maintain control any longer, and for a brief moment you surrendered completely -<n1>letting the feeling claim you</n1>. The moment left you unsettled. Disoriented, lost in your own thoughts, you didn’t even attempt to pursue her. You simply said your farewell and, carrying those tangled impressions with you, made your way [[back to your ship.|Bridge]]
<<if setup.bj is undefined>><<run setup.bj = new Audio("music/bj.mp3")>><<run setup.bj.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.bj.play().catch(()=>{})>>You were slightly taken aback by her question. Was she joking, or was her confidence truly that unshakable? Either way, you intended to get to the bottom of it. So you answered her plainly: <n1>“He did the hard part of the work… he’s the one you should be thanking.”</n1>She glanced at you, then at him, and for the briefest moment it seemed she regretted asking in the first place. But the hesitation vanished just as quickly as it appeared, and that confident, teasing smile returned to her face.
<n3>“Hmmm… this is going to be fun!”</n3> - she said.
<img src="IMG\1\horelf1.png" />
With a light yet confident motion, she slid the garment from her shoulders, letting it drift softly to the ground. Then she lowered herself to her knees, and finally stretched out across the earth, glancing back over her shoulder with a playful, teasing spark in her eyes. <n3>“Come on then, big boy!”</n3> she said, her tone light and deliberately provoking. He answered the invitation without a word, stepping closer and lowering himself beside her. Meanwhile, you stood to the side, watching - curious, but with a perceptive, almost analytical gaze. You tried to attune yourself to the elven girl’s emotions and thoughts: you could sense her <n1>eager curiosity</n1>, the way anticipation stirred within her… and beneath it all, a faint <n1>trace of fear</n1>, subtle but unmistakable.
<img src="IMG\1\horelf2.png" />
When he took that first step toward her, the shift was immediate. <n1>A faint tremor of uncertainty</n1> stirred within her this time - an instinctive hesitation, as if the moment had suddenly become larger, more real than she expected. For a heartbeat, she wondered whether she was truly ready… or merely pretending to be. This feeling grew stronger within her when the <n1>creature's huge cock penetrated even deeper.</n1> In that moment she felt as though her body might not be able to adapt, as if it would be unable to receive him.
<img src="IMG\1\horelf3.png" />
However, the horse-human <n1>"broke through"</n1> and penetrated deeper and deeper into the girl's bottom. As he penetrated deeper and deeper, her body responded after all, Her body adapted after all. In that instant, fear and uncertainty faded, replaced by <n1>pure, unfiltered pleasure</n1> -a new intensity she had never experienced before. <n1>A warm, rising sensation filled her completely</n1>, so profound that her limbs trembled under its growing pleasure.
<img src="IMG\1\horelf4.png" />
In the end, the two of you reached that world of pleasure almost at the very same moment, as if drawn across its threshold together. The horse-human let out a loud whinny, while she gave voice to it with a powerful groan. In the end, he rose to his feet while she remained on the ground, breathless and spent. What had happened left a clear mark on her - her body adapted spectacularly. Yet there was no pain in her, none at all; instead, <n1>a deep, quiet happiness</n1> settled through her body, filling her with a warm, [[steady sense of satisfaction.|Bridge]]
<<if setup.horse is undefined>><<run setup.horse = new Audio("music/horse.mp3")>><<run setup.horse.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.horse.play().catch(()=>{})>><<if $pics25 is true>><div class="hover-image-wrapper"><img src="IMG/1/0186.png" class="main-image" alt="comics"><a data-passage="0186a" class="hover-link link-internal link-image"><img src="IMG/1/0186a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01860.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0186 </span>
<b>TEMPERATURE:</b> <span style="color:#2e86c1;">-270 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">None detected</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">An irregular, glasslike resin shard drifting in the cosmic void, encasing a fossilized giant mosquito in perfect stillness.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0186">><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics25 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>><img src="IMG\1\0187.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0187 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">24 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">One passenger</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A compact single-crew spacecraft designed for simple travel across the galaxy.<br>Comfortable enough for its lone traveler, but offering little purpose beyond carrying them from star to star.</span></div>
<<if $human22 is true>><div style="text-align: center;"> [[Fly closer to the ship]]</div><<else>><div style="text-align: center;"> <n2>You've been here before.</n2></div> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0187">>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\robothack1.mp4" type="video/mp4">
</video>
@@
The ship is drifting through space, but its engines are <n1>inactive</n1>. There is no one in the cockpit. As you fly closer, you notice that the vessel’s only passenger is in the sleeping quarters, <n1>passing the time with their robot companion</n1>. Since they are alone, capturing them would be <n1>effortless</n1> - especially in such an unexpected moment and you will do so, but first you feel like having a bit of fun. It’s time for a small <n1>prank</n1>, and all you need to do is <n1>quietly hack into their humanoid robot</n1>.
<div style="text-align: center;">[[Hack the robot]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\robothack2.mp4" type="video/mp4">
</video>
@@
<div style="text-align: center;">The <n3>robot’s code</n3> is not complicated; its security system can be bypassed with ease. In fact, you only need to <n3>modify its code in three specific places,</n3> and you will have full control over the robot.</div><div id="slotContainer">
<div class="slotColumn" id="col1">?</div>
<div class="slotColumn" id="col2">?</div>
<div class="slotColumn" id="col3">?</div>
</div>
<div id="slotMessage">Press SPACE to stop the columns</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<style>
#slotContainer {
display: flex;
justify-content: center;
gap: 40px;
margin-bottom: 20px;
}
.slotColumn {
width: 60px;
height: 60px;
font-size: 36px;
background-color: #222;
color: #fff;
font-family: monospace;
display: flex;
justify-content: center;
align-items: center;
border: 2px solid #555;
border-radius: 8px;
}
#slotMessage {
text-align: center;
font-weight: bold;
font-size: 18px;
color: white;
}
</style>
<<script>>
(function () {
// Ha már volt ilyen handler, töröljük, hogy ne duplázódjon
if (window.slotKeyHandler) {
window.removeEventListener("keydown", window.slotKeyHandler);
}
const allSymbols = "ABGHIOPSTUV".split("");
const winningWord = ["G", "O", "T"];
const highlightColor = "#6b52a3";
let columns = [[], [], []];
let intervals = [];
let stopped = [false, false, false];
let stopCount = 0;
let stopIndex = 0;
function shuffle(arr) {
let a = arr.slice();
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
function initializeColumns() {
for (let i = 0; i < 3; i++) {
let set = shuffle(allSymbols.filter(c => c !== winningWord[i]));
set.splice(5, 0, winningWord[i]);
columns[i] = set;
}
}
function clearAllIntervals() {
for (let i = 0; i < intervals.length; i++) {
clearInterval(intervals[i]);
}
intervals = [];
}
function startSpin() {
for (let i = 0; i < 3; i++) {
let index = 0;
const colId = "col" + (i + 1);
const elCol = document.getElementById(colId);
if (!elCol) continue;
intervals[i] = setInterval(() => {
const el = document.getElementById(colId);
if (!el) return;
const val = columns[i][index];
el.innerText = val;
el.style.color = (val === winningWord[i]) ? highlightColor : "#fff";
index = (index + 1) % columns[i].length;
}, 400);
}
}
function stopSpin(col) {
clearInterval(intervals[col]);
stopped[col] = true;
stopCount++;
if (stopCount === 3) {
checkWin();
}
}
function checkWin() {
const vals = [1, 2, 3].map(i => {
const el = document.getElementById("col" + i);
return el ? el.innerText : "";
});
const success = vals.every((val, i) => val === winningWord[i]);
const msg = document.getElementById("slotMessage");
if (success) {
msg.innerText = "Success!";
msg.style.color = "white";
setTimeout(function () {
if (typeof Engine !== "undefined" && typeof Engine.play === "function") {
Engine.play("robothack");
}
}, 1000);
} else {
msg.innerHTML = "Failure.<br>Press <strong>R</strong> to retry.";
msg.style.fontSize = "22px";
msg.style.color = "#ff4c4c";
}
}
function resetGame() {
clearAllIntervals();
columns = [[], [], []];
stopped = [false, false, false];
stopCount = 0;
stopIndex = 0;
const msg = document.getElementById("slotMessage");
if (msg) {
msg.innerText = "Press SPACE to stop the columns";
msg.style.color = "white";
msg.style.fontSize = "18px";
}
initializeColumns();
startSpin();
}
function keyHandler(e) {
if (e.code === "Space") {
if (stopIndex < 3) {
stopSpin(stopIndex);
stopIndex++;
}
} else if (e.code === "KeyR") {
resetGame();
}
}
// Globális referencia, hogy legközelebb le lehessen szedni
window.slotKeyHandler = keyHandler;
window.addEventListener("keydown", window.slotKeyHandler);
// Biztonságos automatikus indítás
setTimeout(() => {
initializeColumns();
startSpin();
}, 0);
})();
<</script>>
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/robothack3.mp4" type="video/mp4">
</video>
@@
You broke through the robot’s security system, taking full control, and that meant the fun could finally begin. It was time to speed things up a little. So you tripled the robot’s movement speed. The humanoid first tried to shut the robot down with the <n1>command word</n1>, but you had already rewritten that, rendering it useless. Then the ship’s <n1>repair droid</n1> attempted to disable the system from the outside, but that failed as well. You refuse to release control of the robot - just as the robot refuses to release the humanoid from its <n1>grip</n1>.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/robothack4.mp4" type="video/mp4">
</video>
@@
Then you pushed things even further - you completely rewrote the robot’s <n1>movement protocols</n1>, increasing its speed fivefold. The humanoid now has <n1>no chance of escape</n1>. Its arms and legs flail helplessly, but the robot easily <n1>overpowers</n1> it.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/robothack5.mp4" type="video/mp4">
</video>
@@
Even then, you didn’t want to stop - you intended to push things even further, but the robot suddenly <n1>malfunctions</n1> and effectively destroys itself. It collapses into <n1>scattered pieces</n1>, allowing the humanoid to break free and fall to the floor. The game is over; it is time to [[collect the exhausted humanoid.|Bridge]]
<script>
(function () {
// csak az AKTUÁLIS passage DOM-jában keresünk videókat
const passage = document.currentScript.closest('.passage') || document.body;
const videos = Array.from(passage.querySelectorAll('video'));
let current = null;
if (!videos.length) {
return; // ha nincs video, nincs dolgunk
}
function getClosestToCenter() {
const centerY = window.innerHeight / 2;
let best = null;
let dmin = Infinity;
for (const v of videos) {
const r = v.getBoundingClientRect();
const mid = r.top + r.height / 2;
const d = Math.abs(mid - centerY);
if (d < dmin) {
dmin = d;
best = v;
}
}
return best;
}
async function playWithSound(v) {
if (!v) return;
v.muted = false;
try {
await v.play();
} catch (e) {
// ha a böngésző nem engedi hanggal, némítva indítjuk
v.muted = true;
try { await v.play(); } catch (_) {}
}
}
function stopAll() {
for (const v of videos) {
try {
v.pause();
v.muted = true;
} catch (e) {}
}
current = null;
}
async function updatePlayback() {
const target = getClosestToCenter();
if (!target) {
stopAll();
return;
}
// minden nem cél-videót megállítunk, némítunk
for (const v of videos) {
if (v !== target) {
v.pause();
v.muted = true;
}
}
if (current !== target) {
current = target;
await playWithSound(target);
} else if (target.paused) {
await playWithSound(target);
}
}
function onScrollOrResize() {
updatePlayback();
}
function onVisibilityChange() {
if (document.hidden && current) {
current.pause();
} else {
updatePlayback();
}
}
// eventek bekötése
document.addEventListener('scroll', onScrollOrResize, { passive: true });
window.addEventListener('resize', onScrollOrResize);
document.addEventListener('visibilitychange', onVisibilityChange);
// amikor ELHAGYOD ezt a passage-ot: takarítás
// (SugarCube esemény – a következő passage indulásakor fut le)
$(document).one(':passagestart', function () {
stopAll();
document.removeEventListener('scroll', onScrollOrResize);
window.removeEventListener('resize', onScrollOrResize);
document.removeEventListener('visibilitychange', onVisibilityChange);
});
// induláskor első frissítés
updatePlayback();
})();
</script>
<<set $human += 1>><img src="IMG\1\0188.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0188 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">6 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">666 passengers</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A missionary vessel belonging to another spacefaring religion, wandering from galaxy to galaxy.<br>Yet this time, a dark energy radiates from it.... surely a sign that it serves some kind of cultic sect.</span></div>
<div style="text-align: center;">[[Transmitting docking request|Cult]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0188">><img src="IMG\1\0188a.png" />
As you step onto the ship, the presence of <n1>dark energy</n1> only intensifies. The sect’s <n1>pulsing symbol</n1> appears on every wall, every banner, every carved ornament - yet you <n1>do not recognize</n1> it. The vessel swarms with <n1>cultists</n1>, but they do not confront you; they notice your presence, yet deliberately <n1>part ways</n1> to avoid you. From the half-shadow, a figure emerges, offering a respectful <n1>bow</n1> before silently guiding you down the long corridor toward the <n1>altar</n1>. Candlelight dances across the hooded faces surrounding you, and when their priestess steps forward, she is the one who finally reveals who they are: members of the <n1>Church of Morthalune</n1>.
<img src="IMG\1\0188b.png" />
The priestess explained that the foundation of their faith is the belief that <n1>mental purity is not a virtue, but a shackle</n1>. According to the Church of Morthalune, every being carries within them a spark of <n1>desire</n1>, <n1>instinct</n1>, and <n1>inner corruption</n1> and these are not to be suppressed, but awakened. To them, <n1>pleasure is a gateway</n1>, the distortion of the mind is a form of <n1>liberation</n1>, and what others call sin is, in truth, a path toward <n1>ascension</n1>. They believe that those who reject their own darkness will never achieve true self-understanding, while those who surrender to their desires will discover the <n1>light of Morthalune</n1> through their own corruption. In fact, she goes even further - she offers you a place among them. If you can present them with even a small offering, a single <n1>soul</n1>, then you may take part in their <n1>ritual</n1>.
<div style="text-align: center;"> <<if $human >= 1>> [[Sacrifice a humanoid|Cult2]] <<else>> <n2>Get a humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<if setup.cult is undefined>><<run setup.cult = new Audio("music/cult.mp3")>><<run setup.cult.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.cult.play().catch(()=>{})>><img src="IMG\1\0188c.png" />
You hand over the humanoid, and the ritual begins. Three priestesses step toward the altar, each wearing strange, striped ceremonial garments. Their foreheads are marked with the <n1>symbol of the Church</n1>, painted with deliberate, ritualistic precision. Moving in perfect unison, they approach the humanoid - their chosen <n1>offering</n1> - as the ceremony enters its first phase.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\cult3.mp4" type="video/mp4">
</video>
@@
Then, in a manner perfectly aligned with the doctrines of their faith, their ritual begins -one shaped by deliberate <n1>corruption</n1>, infused with dark <n1>erotic</n1> undertones, and carried by the unsettling allure that defines the Morthalune creed. For a brief moment, the humanoid believes it is experiencing the most fortunate moment of its life, overwhelmed by attention and mystique. Yet it will soon understand how deeply it has been deceived. It is no chosen one - merely a <n1>sacrificial lamb</n1> placed upon the altar of their [[twisted devotion.|Bridge]]
<<set $male -= 1>><img src="IMG\1\0189.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0189 </span>
<b>TEMPERATURE:</b> <span style="color:#fff;">Not measurable</span>
<b>POPULATION:</b> <span style="color:#fff;">Not measurable</span>
<b>DESCRIPTION:</b> <span style="color:#fff;"><n3>VOID FRACTURE.</n3> A rift in reality itself, possibly leading to an unknown region or another dimension entirely.</span></div>
<div style="text-align: center;"> [[Enter the Rift|Rift4]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0189">><div style="text-align: center;"><img id="rfog_img" src="IMG/MG/2/1.png" alt="" style="max-width:100%;height:auto;margin-bottom:12px;">
At first, it seems that this void rift leads into <n2>nothingness.</n2> Red mist and nothing more. <n2>However, it might still be worth examining more closely.</n2> Perhaps it hides something valuable.
<input id="rfog_slider" type="range" min="1" max="50" value="1" step="1"
style="width: 60%; appearance: none; height: 8px; background: #000000; border-radius: 8px; outline: none; cursor: pointer; margin: 0; padding: 0;"></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<script>>
(function redFog_isolated(){
// ----- Lokális, névterezett változók (nem szennyezik a globált) -----
const RFOG_EVENT_NS = '.rfog38'; // jQuery esemény-névtér
const rfogImgBase = 'IMG/MG/2/'; // képek elérési útja
const rfogTargetValue = 38; // célérték
const rfogHoldMs = 1000; // mennyit kell tartani (ms)
const rfogNextPassage = 'Rift4a'; // cél passage
let rfogTimeout = null; // 38-on tartás időzítője
const thisPassage = State.passage; // melyik passage-ban indult
// ----- Segédfüggvények -----
function rfogCleanup() {
if (rfogTimeout) { clearTimeout(rfogTimeout); rfogTimeout = null; }
// Eseménykezelők levétele ennél a névtérnél
$(document).off(RFOG_EVENT_NS);
}
function rfogUpdate(val) {
const v = Number(val);
const img = document.getElementById('rfog_img');
if (img) { img.src = rfogImgBase + v + '.png'; }
if (v === rfogTargetValue) {
// Indíts egyszeri időzítőt, ha még nincs
if (!rfogTimeout) {
rfogTimeout = setTimeout(() => {
// Biztonsági ellenőrzések: még itt vagyunk? még 38?
if (State.passage === thisPassage) {
const slider = document.getElementById('rfog_slider');
if (slider && Number(slider.value) === rfogTargetValue) {
rfogCleanup();
Engine.play(rfogNextPassage);
}
}
}, rfogHoldMs);
}
} else {
// Elmozdult a 38-ról → töröljük a futó időzítőt
if (rfogTimeout) { clearTimeout(rfogTimeout); rfogTimeout = null; }
}
}
// ----- Feliratkozás a passage-életciklusra -----
$(document).one(':passagedisplay' + RFOG_EVENT_NS, function () {
const slider = document.getElementById('rfog_slider');
if (!slider) return;
// Kezdőkép frissítése a kezdeti értékből
rfogUpdate(slider.value);
// Élő frissítés (inline oninput nélkül, hogy ne ütközzön semmivel)
slider.addEventListener('input', (e) => rfogUpdate(e.target.value), { passive: true });
});
// Ha elhagyjuk a passage-t, minden leáll
$(document).one(':passageend' + RFOG_EVENT_NS, rfogCleanup);
})();
<</script>>
<<if setup.mass is undefined>><<run setup.void = new Audio("music/void.mp3")>><<run setup.void.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.void.play().catch(()=>{})>><img src="IMG\1\0189a.png" />
The floating island drifts in the void, and the radar begins to register <n2>signs of life</n2>. Another trapped humanoid, perhaps? No… the signals are far too strong for that. Something entirely different is happening here something you must investigate. But caution is necessary. You must remain <n2>unseen</n2>. You’ve traveled through this dimension before and you know that <n2>demonic forces</n2> are at work within its depths. Yet you still do not understand this realm well enough; you have no idea what <n2>unknown dangers</n2> may be waiting for you beyond the red mist.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\0189.mp4" type="video/mp4">
</video>
@@
This time, the demonic creatures are not accompanied by a mortal. Instead, they have chosen someone of their own kind - someone who carries <n2>demonic power</n2> within her: a <n2>succubus</n2>. Has she been captured? Or did she offer herself for this task of her own free will? You cannot know for certain… but from what you can see, she is <n2>clearly enjoying herself</n2>.
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG/1/0190.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0190 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">30 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">the surviving fragment of the former humanoid population</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">Some kind of catastrophe ravaged this world, leaving behind only scattered remnants of the once-dominant civilization.</span></div>
<<if $human24 is true>><div style="text-align: center;"><a data-passage="0190a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height:150px; height:auto; width:auto;"></a></div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0190">><img src="IMG/1/0190a.png" />
You enter the planet’s atmosphere, searching for any surviving humanoids. You have no idea what could have caused the world’s downfall - at least not until you spot a <n3>strange creature</n3> in the ruined streets, chasing a lone <n3>humanoid</n3>. Your database contains <n3>no record</n3> of it. According to your sensors, its body emits <n3>intense radiation</n3>, making it of no practical use to you… yet it still ignites your curiosity. If you allow it to catch the humanoid, you’ll have a better chance to examine it <n3>up close</n3>. But doing so would almost certainly <n3>cost the humanoid’s life</n3>.
<div style="text-align: center;">[[Save the humanoid|Grab]] or [[Let the strange creature catch the humanoid]]</div>
<<set $human += 1>>
<<set $human24 to false>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\demogo.mp4" type="video/mp4">
</video>
@@
Now that the creature is fully occupied with the humanoid, it remains still enough to examine more closely. The <n3>creature’s posture shifts</n3>, every muscle tightening as if the thrill of the hunt is what sustains it. Its body, even up close, is <n3>unnervingly distorted</n3>: the chest rises in uneven, unnatural motions, ribs pressing against the skin in far too many places, and thin glowing fissures crawl across its surface, pulsing with a faint <n3>radioactive light</n3>. Its head slowly unfurls like a fleshy, blood-petaled flower, revealing the inner surface lined with <n3>concentric rings of teeth</n3>. Its movements are both animalistic and alien, as though it obeys no known anatomical logic. Your sensors indicate that the patterns on its body shift in response to changes in temperature and radiation - suggesting that the creature itself is a living <n3>anomaly</n3>, shaped by this world in the [[wake of its apocalypse.|Bridge]]
<<set $human -= 1>><img src="IMG/1/0191.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0191 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">28 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">One celestial entity</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A void-bound arboreal sanctuary illuminated by a crystal core. Its purpose is unknown, yet it appears to operate without external support.</span></div>
<div style="text-align: center;"><a data-passage="0191a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height:150px; height:auto; width:auto;"></a></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0191">><img src="IMG/1/0191a.png" />
A tiny creation, <n1>a celestial fairy</n1> welcomes you upon arrival. Or, to be more precise, this is not even a planet, but <n1>a heavenly hanging garden</n1>. <n1>The rarest plants in the galaxy</n1> originate from here - it is a unique and sacred collection. The celestial fairy appears to be <n1>a fragile and harmless being</n1>, yet she possesses <n1>tremendous power</n1> - especially within her own garden, where <n1>all life obeys her will</n1>.
<img src="IMG/1/0191b.png" />
She welcomes you kindly, and even flies ahead of you as she guides you around her garden. When she learns that you are a great traveler and that you, too, collect “life,” although not plants, she turns to you with a request. She is searching for a special plant, one that even she cannot grow in her garden. Its name is <n1>Vinelux Orchid</n1>. If you find it and bring it to her, you can count on her help in the future; she will also grant you a favor in return. However, she knows nothing about this plant - except what it looks like. It has <n1>red petals with a yellow center</n1>, <n1>small leaves</n1>, and <n1>large green vines</n1>. Based on this description, you must find it somewhere on <n1>the outer edge of the galaxy</n1>.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $garden to true>>
<<if setup.fairy is undefined>><<run setup.fairy = new Audio("music/fairy.mp3")>><<run setup.fairy.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.fairy.play().catch(()=>{})>>
<<if $garden2 is true>> <<goto "0191b">> <</if>>
<<if $garden4 is true>> <<goto "0191q">> <</if>><<if $helpzen is true>><img src="IMG\1\0192a.png" /><<else>><img src="IMG\1\0192.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0192 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">12 °C</span>
<b>POPULATION:</b> <span style="color:#fff;">one company of humanoid soldiers</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A border outpost in deep space responsible for inspecting all passing vessels, where ships with detected irregularities are detained or seized for further investigation.</span></div>
<<if $helpzen is true>><<else>><div style="text-align: center;">A Zenthari ship appears to have been careless and collided with the outpost. The vessel has been confiscated, and its crew is likely being held in captivity. Perhaps you should consider helping them… [[Free the Zenthari starship]]</div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0192">><img src="IMG\1\0192b.png" />
You examined the outpost’s control center and discovered that <n1>the laser prison holding the ship</n1> can be disabled from there. However, the defense systems are far too strong, making <n1>remote access impossible</n1>. You will need to <n1>infiltrate the facility</n1> or send <n1>one of your creatures</n1> capable of remaining completely undetected and navigating through the internal control network.
<div style="text-align: center;"><<if $samara is 6>>[[Send the Sadak into the ship’s security system]]<<else>><n2>You have not yet established a strong bond with the Sadako</n2><</if>></div>
<div style="text-align: center;">[[Back|Bridge]]</div><<puzzle 3 3 "IMG/1/sadacode.png" 480 6 "0192a">>
<div style="text-align: center;"><n1>Sadako</n1> can move effortlessly through the digital space, allowing her to reach the correct room undetected and <n1>deactivate both the defense systems and the laser prison</n1>. However, before she can do so, you must first <n1>upload her into the system</n1>. To achieve this, you will need to <n1>find and designate the correct access path</n1>.
[[Back|Bridge]]</div><img src="IMG/1/0145x.png" />
The upload was successful, and Sadako has entered the system, yet nothing is happening. You wait patiently, but there is still no change. What is going on inside? What is <n1>Sadako</n1> doing? Maybe it was a mistake to do this, a mistake to trust her. You let her go, and now she is <n1>free</n1>. You have to find out what is happening in there; you must <n1>break into the security system</n1> and, through the cameras, discover what is going on inside and where Sadako is. <div id="slotContainer">
<div class="slotColumn" id="col1">?</div>
<div class="slotColumn" id="col2">?</div>
<div class="slotColumn" id="col3">?</div>
</div>
<div id="slotMessage">Press SPACE to stop the columns</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<style>
#slotContainer {
display: flex;
justify-content: center;
gap: 40px;
margin-bottom: 20px;
}
.slotColumn {
width: 60px;
height: 60px;
font-size: 36px;
background-color: #222;
color: #fff;
font-family: monospace;
display: flex;
justify-content: center;
align-items: center;
border: 2px solid #555;
border-radius: 8px;
}
#slotMessage {
text-align: center;
font-weight: bold;
font-size: 18px;
color: white;
}
</style>
<<script>>
(function () {
// Ha már volt ilyen handler, töröljük, hogy ne duplázódjon
if (window.slotKeyHandler) {
window.removeEventListener("keydown", window.slotKeyHandler);
}
const allSymbols = "ABGHIOPSTUV".split("");
const winningWord = ["H", "O", "V"];
const highlightColor = "#6b52a3";
let columns = [[], [], []];
let intervals = [];
let stopped = [false, false, false];
let stopCount = 0;
let stopIndex = 0;
function shuffle(arr) {
let a = arr.slice();
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
function initializeColumns() {
for (let i = 0; i < 3; i++) {
let set = shuffle(allSymbols.filter(c => c !== winningWord[i]));
set.splice(5, 0, winningWord[i]);
columns[i] = set;
}
}
function clearAllIntervals() {
for (let i = 0; i < intervals.length; i++) {
clearInterval(intervals[i]);
}
intervals = [];
}
function startSpin() {
for (let i = 0; i < 3; i++) {
let index = 0;
const colId = "col" + (i + 1);
const elCol = document.getElementById(colId);
if (!elCol) continue;
intervals[i] = setInterval(() => {
const el = document.getElementById(colId);
if (!el) return;
const val = columns[i][index];
el.innerText = val;
el.style.color = (val === winningWord[i]) ? highlightColor : "#fff";
index = (index + 1) % columns[i].length;
}, 400);
}
}
function stopSpin(col) {
clearInterval(intervals[col]);
stopped[col] = true;
stopCount++;
if (stopCount === 3) {
checkWin();
}
}
function checkWin() {
const vals = [1, 2, 3].map(i => {
const el = document.getElementById("col" + i);
return el ? el.innerText : "";
});
const success = vals.every((val, i) => val === winningWord[i]);
const msg = document.getElementById("slotMessage");
if (success) {
msg.innerText = "Success!";
msg.style.color = "white";
setTimeout(function () {
if (typeof Engine !== "undefined" && typeof Engine.play === "function") {
Engine.play("sadakocam");
}
}, 1000);
} else {
msg.innerHTML = "Failure.<br>Press <strong>R</strong> to retry.";
msg.style.fontSize = "22px";
msg.style.color = "#ff4c4c";
}
}
function resetGame() {
clearAllIntervals();
columns = [[], [], []];
stopped = [false, false, false];
stopCount = 0;
stopIndex = 0;
const msg = document.getElementById("slotMessage");
if (msg) {
msg.innerText = "Press SPACE to stop the columns";
msg.style.color = "white";
msg.style.fontSize = "18px";
}
initializeColumns();
startSpin();
}
function keyHandler(e) {
if (e.code === "Space") {
if (stopIndex < 3) {
stopSpin(stopIndex);
stopIndex++;
}
} else if (e.code === "KeyR") {
resetGame();
}
}
// Globális referencia, hogy legközelebb le lehessen szedni
window.slotKeyHandler = keyHandler;
window.addEventListener("keydown", window.slotKeyHandler);
// Biztonságos automatikus indítás
setTimeout(() => {
initializeColumns();
startSpin();
}, 0);
})();
<</script>>
<div class="mc-row">
<a class="mc-card"
onclick="SugarCube.Engine.play('sadcam1')"
onkeypress="if(event.key==='Enter'){SugarCube.Engine.play('sadcam1')}">
<img src="IMG/1/cam1_icon.png">
</a>
<a class="mc-card"
onclick="SugarCube.Engine.play('sadcam2')"
onkeypress="if(event.key==='Enter'){SugarCube.Engine.play('sadcam2')}">
<img src="IMG/1/cam2_icon.png">
</a>
<a class="mc-card"
onclick="SugarCube.Engine.play('sadcam3')"
onkeypress="if(event.key==='Enter'){SugarCube.Engine.play('sadcam3')}">
<img src="IMG/1/cam3_icon.png">
</a>
</div>
You have successfully broken into the security system - now you only need to find <n1>Sadako</n1>. If she is following the mission, she should be inside the <n1>control center commander’s room</n1>. However, which camera is the one that shows that room? Well… that part is up to you to figure out.
<div style="text-align: center;">[[Back|Bridge]]</div>
<style>
.mc-row{
display:flex;
justify-content:center;
align-items:center;
gap:12px;
flex-wrap:wrap;
margin:10px 0;
}
.mc-card{
display:block;
width:260px; /* álló képekhez ideális */
border-radius:10px;
overflow:hidden;
box-shadow:0 2px 10px rgba(0,0,0,.35);
transition:transform 160ms ease, box-shadow 160ms ease;
cursor:pointer;
}
.mc-card img{
width:100%;
height:auto; /* NEM vágja le a képet */
display:block;
}
.mc-card:hover,
.mc-card:focus-visible{
transform:translateY(-2px) scale(1.03);
box-shadow:0 12px 24px rgba(0,0,0,.45);
}
</style>
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sadcam3.mp4" type="video/mp4">
</video>
@@
You finally locate the correct camera feed - and there is <n2>Sadako.</n2> She appears to be overperforming her mission: <n2>while she toys with the assigned target, she proceeds to neutralize it in her own way.</n2> Even though the bond between you is strong and she follows your commands, she doesn’t always execute them exactly as you intend; she chooses her own methods, her own logic, and her own pacing, even if that causes a slight delay. <n2>Eventually she finishes what she started, disables the defense system, and calmly returns to you</n2> as if she had simply completed a routine task. With the blockade removed, the captured Zenthari now have a chance to escape from the outpost.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $helpzen to true>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sadcam2.mp4" type="video/mp4">
</video>
@@
This camera shows the <n1>laboratory, where the construction and testing of humanoid robots</n1> - commonly known as androids - is taking place. There are reconnaissance models, military units, and civilian-purpose types as well. However, it seems that here they have been assigned a rather different role. The crew of the control center appears to consist mostly of male humanoids, and the <n1>androids seem to be intended as a way to compensate for that imbalance.</n1>
<div style="text-align: center;">[[Back|sadakocam]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\sadcam1.mp4" type="video/mp4">
</video>
@@
This camera is showing the hangar, where the <n1>mechanics are, let’s say, keeping themselves entertained during their free time.</n1> At least this way, throughout their long periods of service, such personal needs don’t distract them from their duties, since they can take care of them right here, without leaving their post.
<div style="text-align: center;">[[Back|sadakocam]]</div><img src="IMG/1/0193.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0193</span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+10 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">N/A</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A planet where every structure, object, and natural form is crafted from stitched fabric, threads, and patchwork material, giving the entire world a soft yet unsettling artificial atmosphere.</span></div> <div style="text-align: center;"><a data-passage="0193a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height:150px; height:auto; width:auto;"></a></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0193">><img src="IMG/1/0193a.png" />
As you step inside, you quickly realize this is a different kind of place. Here, everything is made of <n3>fabric</n3>. <n3>Fabric</n3> walls form the houses, <n3>fabric</n3> curves shape the roads, and even the stones beneath your feet are <n3>fabric</n3>. The trees are also made of <n3>fabric</n3>, pieced together from colorful patches and buttons, with visible seams as if someone had carefully assembled them by hand. When you look up, you see the sky is <n3>stitched</n3>, the cloud edges are <n3>stitched</n3>, and the stars appear like tiny <n3>stitched</n3> dots on a dark piece of cloth. The moon looks like a large <n3>stitched</n3> crescent, gently placed into position. Nothing here is hard, rigid, or echoing. There are no clacking stones and no metallic sounds.
<img src="IMG/1/0193b.png" />
A strange creature steps out onto the street. At first glance, it appears almost humanoid: its shape, proportions, and movements feel familiar, yet something is clearly <n3>wrong</n3>. Your sensors detect no signs of <n3>life</n3>, so you’re unable to use mind-control on it. There is no blood, no neural tissue, and no biological activity inside its body. It is made of thread, plastic, stitches, and buttons, yet it moves - or at least behaves - as if it were <n3>alive</n3>. This being seems to be a product of this strange, corrupted world built from scraps and fabric. Another subject worth observing, at least for a short test. The only question is how it will attempt to form a connection with a real, flesh-and-blood humanoid. Will it recognize any <n3>similarity</n3>?
<div style="text-align: center;"> <<if $male >= 1>> [[Send a humanoid to the planet's surface|0193b]] <<else>> <n2>⚠ Get a (male)humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\otherm.mp4" type="video/mp4">
</video>
@@
The creature does not show fear or curiosity toward the humanoid for even a single moment. It makes no distinction between itself and the other, as if they belonged to the same <n3>species</n3> — even though their similarity is only external. Its behavior suggests it does not recognize the difference in structure, material, or form of existence. Then, suddenly, it seems to experience an unexpected internal <n3>impulse</n3> in the humanoid’s presence. She pulls down his pants and immediately tries to have sex with him. Is this how the creatures living here behave, or did this humanoid bring it out in her? Hmmm... good question, but you won't get an [[answer to that right now.|Bridge]]<img src="IMG/1/0194.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0194</span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+24 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">1 humanoid and 1 horse</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A tiny, self-contained farm world drifting silently through the void, where life survives in peaceful isolation.</span></div> <<if $homhor is true>> <<else>><div style="text-align: center;"><a data-passage="0194a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height:150px; height:auto; width:auto;"></a></div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0194">>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\famho1.mp4" type="video/mp4">
</video>
@@
You quickly come across the planet’s<n1>only humanoid inhabitant,</n1> who is leaning against the fence outside the stable, desperately trying to make the planet’s only other living creature, her white horse, do something. Every attempt, call, gesture and encouragement turns out to be completely ineffective; the horse seems far more interested in the green grass than in its owner. The situation feels unusual and slightly comical, so you decide not to ignore it and ask what is actually going on. Her reply comes with brief, bittersweet honesty: <n1>“Do you know how lonely I am here all by myself? This big oaf doesn’t even care. I could really use some fun, but there’s no one to share it with!”</n1> You know perfectly well that controlling the horse would be effortless for you, as with mind-control it would behave exactly as you wished, so the real question is whether you <n1>choose to help</n1> or <n1>let things remain as they are</n1>.
<div style="text-align: center;">[[Help her|0194b]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\famho2.mp4" type="video/mp4">
</video>
@@
<div style="text-align: center;">The humanoid stands by the fence once again and tries to call the horse over, but it still doesn’t react. At that moment, you use your ability to slip into its mind and wait for the right moment. You are <n1>ready to give the command,</n1> and you intend to do it in a way that will deliver <n1>a truly big surprise for the humanoid.</n1></div><<set $aim94_pos = 0>><<set $aim94_dir = 1>><<set $aim94_running = false>><<set $aim94_intervalId = 0>><<set $aim94_failed = false>><div id="aim94_wrap">
<div id="aim94_track">
<div id="aim94_zone"></div>
<div id="aim94_marker"></div>
</div>
<div id="aim94_msg"></div>
</div>
<style>
#aim94_wrap{
max-width:866px;
margin:10px auto 14px auto;
font-family:inherit;
}
.aim94_label{margin-bottom:8px;opacity:.9}
#aim94_track{
position:relative;
height:28px;
border-radius:8px;
overflow:hidden;
background:#0f0f14;
border:1px solid #2b2b36;
box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}
/* célzóna */
#aim94_zone{
position:absolute;
top:0;
left:48.5%;
width:3%;
height:100%;
background:linear-gradient(180deg,rgba(231,76,60,.85),rgba(231,76,60,.7));
box-shadow:0 0 12px rgba(231,76,60,.45) inset;
pointer-events:none;
}
/* mozgó marker (célkereszt csík) */
#aim94_marker{
position:absolute;
top:0;
left:0%;
width:2px;
height:100%;
background:linear-gradient(180deg,#8fd3ff,#49b0ff);
box-shadow:0 0 10px rgba(73,176,255,.75), 0 0 2px rgba(255,255,255,.25) inset;
transform:translateX(-50%);
pointer-events:none;
}
#aim94_msg{
margin-top:8px;
min-height:22px;
color:#c8c8d0;
}
#aim94_msg b{color:#fff}
</style>
<<script>>
(function(){
// ---- ID-k / változók csak ehhez a verzióhoz ----
const TRACK = "aim94_track";
const ZONE = "aim94_zone";
const MARKER = "aim94_marker";
const MSG = "aim94_msg";
const IDVAR = "$aim94_intervalId";
const RUNVAR = "$aim94_running";
const POSVAR = "$aim94_pos";
const DIRVAR = "$aim94_dir";
const FAILVAR = "$aim94_failed";
// sebesség
const SPEED_PCT_PER_TICK = 2.2;
const TICK_MS = 18;
// billentyűk
const KEY_FIRE = "Space";
const KEY_RELOAD = "KeyR";
// segédek
const clamp = (x,min,max)=>Math.max(min,Math.min(max,x));
const inScope = ()=>document.getElementById(TRACK)!=null;
function getZoneBoundsPct(){
const zone = document.getElementById(ZONE);
const track = document.getElementById(TRACK);
if(!zone || !track) return {min:45, max:55};
const w = track.clientWidth || 1;
const zl = zone.offsetLeft;
const zw = zone.clientWidth;
const minPct = (zl / w) * 100;
const maxPct = ((zl + zw) / w) * 100;
return {min:minPct, max:maxPct};
}
function render(){
if(!inScope()) return;
const p = clamp(State.getVar(POSVAR), 0, 100);
const m = document.getElementById(MARKER);
if(m) m.style.left = p + "%";
}
function setMsg(html){
const el = document.getElementById(MSG);
if(el) el.innerHTML = html || "";
}
function start(){
if(State.getVar(RUNVAR) || !inScope()) return;
State.setVar(RUNVAR, true);
State.setVar(FAILVAR, false);
setMsg("");
const id = setInterval(()=>{
if(!inScope()){
stop();
return;
}
let p = State.getVar(POSVAR);
let d = State.getVar(DIRVAR);
p += SPEED_PCT_PER_TICK * d;
if(p >= 100){ p = 100; d = -1; }
if(p <= 0){ p = 0; d = 1; }
State.setVar(POSVAR, p);
State.setVar(DIRVAR, d);
render();
}, TICK_MS);
State.setVar(IDVAR, id);
}
function stop(){
const id = State.getVar(IDVAR);
if(id){
clearInterval(id);
State.setVar(IDVAR, 0);
}
State.setVar(RUNVAR, false);
}
function fire(){
if(!inScope() || !State.getVar(RUNVAR)) return;
const p = State.getVar(POSVAR);
const {min, max} = getZoneBoundsPct();
const hit = (p >= min && p <= max);
stop();
if(hit){
setMsg("Bullseye!");
setTimeout(()=>Engine.play("0194c"), 350);
}else{
State.setVar(FAILVAR, true);
setMsg("Failed. <b>Reload with R!</b>");
}
}
function reload(){
if(!inScope()) return;
if(!State.getVar(FAILVAR) && State.getVar(RUNVAR)) return;
State.setVar(POSVAR, 0);
State.setVar(DIRVAR, 1);
State.setVar(FAILVAR, false);
render();
start();
}
function onKey(e){
if(e.code === KEY_FIRE){
e.preventDefault();
fire();
}else if(e.code === KEY_RELOAD){
reload();
}
}
// duplabind ellen védelem – ehhez a verzióhoz saját flag
if(window._aim94Bound){
document.removeEventListener("keydown", window._aim94_onKey);
window._aim94Bound = false;
}
window._aim94_onKey = onKey;
document.addEventListener("keydown", onKey, {passive:false});
window._aim94Bound = true;
// passage elhagyásakor takarítás
if(Story && Story.on){
Story.on("passage:before", function(){
stop();
if(window._aim94Bound){
document.removeEventListener("keydown", window._aim94_onKey);
window._aim94Bound = false;
}
});
}
// indulás
setTimeout(()=>{ render(); start(); }, 10);
})();
<</script>>
You managed to deliver a truly unexpected and <n1>deeply impactful surprise to the humanoid!</n1> After all, this is exactly what she wanted, so even if you had a bit of fun in the process, you still ended up helping her.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/famho3.mp4" type="video/mp4">
</video>
@@
Her long, dull and lonely time on this planet has now been eased - perhaps even completely dispelled, at least for a while. You leave her to <n1>enjoy the moment without interruption</n1> - she has been waiting for this for a long time. And in the end, it’s understandable; being alone for so long can be painfully dull.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/famho4.mp4" type="video/mp4">
</video>
@@
You take one last look at what you’ve created, then leave this tiny - <n1> yet undeniably special </n1> - [[little planet behind|Bridge]]
<script>
(function () {
// csak az AKTUÁLIS passage DOM-jában keresünk videókat
const passage = document.currentScript.closest('.passage') || document.body;
const videos = Array.from(passage.querySelectorAll('video'));
let current = null;
if (!videos.length) {
return; // ha nincs video, nincs dolgunk
}
function getClosestToCenter() {
const centerY = window.innerHeight / 2;
let best = null;
let dmin = Infinity;
for (const v of videos) {
const r = v.getBoundingClientRect();
const mid = r.top + r.height / 2;
const d = Math.abs(mid - centerY);
if (d < dmin) {
dmin = d;
best = v;
}
}
return best;
}
async function playWithSound(v) {
if (!v) return;
v.muted = false;
try {
await v.play();
} catch (e) {
// ha a böngésző nem engedi hanggal, némítva indítjuk
v.muted = true;
try { await v.play(); } catch (_) {}
}
}
function stopAll() {
for (const v of videos) {
try {
v.pause();
v.muted = true;
} catch (e) {}
}
current = null;
}
async function updatePlayback() {
const target = getClosestToCenter();
if (!target) {
stopAll();
return;
}
// minden nem cél-videót megállítunk, némítunk
for (const v of videos) {
if (v !== target) {
v.pause();
v.muted = true;
}
}
if (current !== target) {
current = target;
await playWithSound(target);
} else if (target.paused) {
await playWithSound(target);
}
}
function onScrollOrResize() {
updatePlayback();
}
function onVisibilityChange() {
if (document.hidden && current) {
current.pause();
} else {
updatePlayback();
}
}
// eventek bekötése
document.addEventListener('scroll', onScrollOrResize, { passive: true });
window.addEventListener('resize', onScrollOrResize);
document.addEventListener('visibilitychange', onVisibilityChange);
// amikor ELHAGYOD ezt a passage-ot: takarítás
// (SugarCube esemény – a következő passage indulásakor fut le)
$(document).one(':passagestart', function () {
stopAll();
document.removeEventListener('scroll', onScrollOrResize);
window.removeEventListener('resize', onScrollOrResize);
document.removeEventListener('visibilitychange', onVisibilityChange);
});
// induláskor első frissítés
updatePlayback();
})();
</script>
<<set $homhor to true>><img src="IMG/1/0195.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0195</span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+38 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">No sentient beings detected - flora dominance only</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A fully self-sustaining botanical world teeming with dense vegetation, layered moss fields, vine networks and towering, ancient canopy structures. </span></div> <<if $garden is true>><div style="text-align: center;"><a data-passage="0195a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height:150px; height:auto; width:auto;"></a></div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0195">><div id="flashWrap">
<!-- sötét maszkolás, csak a „zseblámpa” köre látszik -->
<div id="flashMask"></div>
<!-- HOTSPOT: itt „van” a növény – a koordinátákat nyugodtan finomhangold -->
<div id="flashTarget" data-passage="0195b"></div>
</div>
You feel certain that this planet may be where you finally find the plant requested by the Celestial Fairy. It is described as having <n1>red leaves</n1>, an <n1>inner golden glow</n1>, and <n1>strong, vivid green vines</n1> - this is what you’re searching for, what you must locate. However, the planet is extremely <n1>dark</n1>, and the vegetation is dense and tangled, forcing you to be cautious with every step so you don't unknowingly walk right past it.
<div style="text-align: center;"><n3>Use your mouse to aim your flashlight at the flower.</n3></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<style>
/* konténer – 16:9, a te képeddel */
#flashWrap{
position:relative;
margin:10px auto;
max-width:960px;
aspect-ratio:16/9;
background:url("IMG/1/0195a.png") center/cover no-repeat;
overflow:hidden;
cursor:none; /* egér eltüntetése a hangulat miatt */
}
/* sötét overlay, közepén egy világos körrel – ezt mozgatjuk JS-ből */
#flashMask{
position:absolute;
inset:0;
pointer-events:none;
/* --x és --y értékét JS állítja (0–100%) */
--x:50%;
--y:50%;
background:
radial-gradient(
circle 80px at var(--x) var(--y),
transparent 0,
#000 60%
);
transition:background-position 0.05s linear;
}
/* a növény hotspotja – kb. jobb alsó sarok, finomhangolható */
#flashTarget{
position:absolute;
/* EZT ÁLLÍTSD, ha nem pontos: */
right:7%; /* vízszintes pozíció */
bottom:10%; /* függőleges pozíció */
width:12%; /* hotspot szélesség */
height:18%; /* hotspot magasság */
cursor:pointer;
/* debughoz kapcsold be: */
/* outline:1px solid red; */
}
#flashTarget:active{
outline:2px solid #ffd700;
}
</style>
<script>
(function(){
const wrap = document.getElementById("flashWrap");
const mask = document.getElementById("flashMask");
const target = document.getElementById("flashTarget");
if(!wrap || !mask || !target) return;
// egér / érintés pozícióját átadjuk CSS változóknak (0–100%)
function updateLight(x, y){
const rect = wrap.getBoundingClientRect();
const px = ((x - rect.left) / rect.width) * 100;
const py = ((y - rect.top) / rect.height) * 100;
mask.style.setProperty("--x", px + "%");
mask.style.setProperty("--y", py + "%");
}
function onMove(e){
if(e.touches && e.touches.length){
const t = e.touches[0];
updateLight(t.clientX, t.clientY);
}else{
updateLight(e.clientX, e.clientY);
}
}
wrap.addEventListener("mousemove", onMove);
wrap.addEventListener("touchmove", onMove, {passive:true});
// növény megtalálva → átugrás a megadott passage-be
function onFound(){
const pass = target.getAttribute("data-passage") || "0195b";
if(window.Engine && Engine.play){
Engine.play(pass);
}
}
target.addEventListener("click", onFound);
target.addEventListener("touchend", onFound);
// takarítás passage váltáskor
if(window.Story && Story.on){
Story.on("passage:before", function(){
wrap.removeEventListener("mousemove", onMove);
wrap.removeEventListener("touchmove", onMove);
target.removeEventListener("click", onFound);
target.removeEventListener("touchend", onFound);
});
}
})();
</script>
<img src="IMG/1/0195b.png" />
You hold the long-sought flower in your hand, still unable to understand what makes it so <n3>special</n3>. To you, it appears to be nothing more than a simple plant nothing remarkable, nothing powerful, nothing sacred. But if this is what the <n3>Celestial Fairy</n3> wanted, then so be it. The mission is complete, and there is no reason to question it further. It’s time to <n3>deliver it to her</n3>. Set a course for [[Planet 0191|Bridge]].
<<set $garden to false>> <<set $garden2 to true>><img src="IMG/1/0191a.png" />
She had been waiting for your return with clear excitement - somehow knowing that you would be the one capable of finding this <n3>mysterious plant</n3>, even though you still don’t understand what makes it so important. In your hands, it seems completely ordinary, nothing more than a simple flower - <n3>plain, fragile, and unimpressive</n3>. But when the <n3>Celestial Fairy</n3> gently takes it from you, plants it with care, and sprinkles it with her <n3>enchanted pollen</n3>, everything begins to change. The plant reacts instantly, shifting into a new and extraordinary form. Its growth becomes rapid and unstoppable - its vines stretch outward, its stem thickens, its blossom expands far beyond any natural scale, and finally, its core ignites with a <n3>brilliant, otherworldly glow</n3>.
<img src="IMG/1/0191g.png" />
Within moments, it became the largest plant on the entire planet - and according to the fairy,this still isn’t its final form.<n1>“If you would like to witness its full bloom, you are welcome to stay. There is only one small, quick sacrifice required beforehand.”</n1> she says, her voice calm but filled with anticipation.This might be a rare and unrepeatable opportunity - one that may never come again. Perhaps... you shouldn’t walk away from it.
[[Wait for the ritual and the blooming]]
<<set $garden3 to true>>
<<set $garden2 to false>>
<<set $garden to false>>@@.vid;
<video autoplay muted loop playsinline
oncontextmenu="return false;"
onpause="this.play();">
<source src="IMG/VID/ften1.mp4" type="video/mp4">
</video>
@@
The tentacles slowly crawl toward the fairy, then slowly rise into the air. They gradually increase in number until they finally surround her. Then the first tentacle slowly moves toward her mouth. <n3>She slowly opens her mouth and the first tentacle penetrates deeper and deeper into her.</n3> Meanwhile, the other tentacles wrap around her limbs. Until finally, she can no longer escape, though she doesn't want to.
<img src="IMG/1/ften2.png" />
Then something happened, perhaps the tentacle <n3>penetrated too deeply,</n3> and the fairy tried to fly away, but the tentacles wrapped around her legs wouldn't let her. They held her down on the ground, then started again, this time attacking her in a completely different way, more wildly. One tentacle rose high, <n3>then penetrated her pussy</n3> with a single swift movement.
<img src="IMG/1/ften3.png" />
This time, they wrapped her arms around her and completely disarmed her. The tentacle penetrated her again and again at an increasingly rapid pace, as if with each <n3>movement it was getting deeper and deeper into the fairy's tiny body.</n3>
<img src="IMG/1/ften4.png" />
Then another tentacle joined in this special "ceremony." <n3>This tentacle was no longer bound by any physical limitation.</n3> The plant had now completely wrapped itself around the sky-fairy’s body. Its blossom glowed brighter than ever before. But… had the ritual truly ended?” “You can’t tell. You’re not even sure whether what you’re seeing is still part of the ritual or if the fairy actually needs help. Well, it’s not your place to decide - so [[you turn and leave.|Bridge]]
<<set $garden4 to true>><img src="IMG/1/ften5.png" />
It seems the fairy is still occupied. Is this a new ritual? <n3>A new blooming?</n3> Or is it the same one, simply continuing without end? There’s no way to tell.
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG/1/0196.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0196 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+15 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">N/A</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A dark, mist-choked planet where sunlight never reaches the ground. Its marshlands pulse with eerie green light beneath the black sky</span></div>
<div style="text-align: center;"> <a data-passage="0196a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0196">><img src="IMG/1/0196a.png" />
Even after entering the planet’s atmosphere, the darkness never lifts. The swirling black mass scrambles your sensors - detecting the planet, the crashed humanoid ship, but not the survivor. Your floodlights can't cut through the fog. If you want to find the last living humanoid, you must <n1>send down a creature of your own - one that can see in the dark</n1> and relay the coordinates back to you.
<<if $vex is true>>[[Send Vex down to the planet’s surface]] <<else>><n2>Missing creature: Vex – can be created in the Biolab.</n2> <</if>>
<div style="text-align: center;">[[Back|Bridge]]</div><img src="IMG/1/0196b.png" />
Vex quickly found the humanoid and transmitted the exact coordinates, and with the gravitational beam you could have pulled him up without any difficulty, yet something was wrong. <n1>The humanoid’s behavior was anything but normal;</n1> considering he had just crashed and that an alien hybrid creature was standing before him, he was far too calm, even advancing with a hostile demeanor. <n1>Some corrupt force had settled over his mind.</n1> The planet - or an entity dwelling within it - had taken control of him.
@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\vexhum.mp4" type="video/mp4">
</video>
@@
The humanoid lunges at Vex, who stands no chance against him, having neither physical strength nor any special abilities. Her only “weapon” is her indifference and the quiet acceptance of her fate. Fortunately, the humanoid does not attack with murderous intent; <n1>his mind is driven by other, far more corrupted desires.</n1> By lifting the humanoid into your ship, you cannot know what kind of force you might unleash from the prison of this world, so you choose to leave him behind and [[rescue only Vex.|Bridge]]<img src="IMG\1\0197.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0197 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">N/A</span>
<b>POPULATION:</b> <span style="color:#fff;">N/A</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A planet adrift in the void, its surface twisted into countless grinning human faces.Their laughter echoes through space itself, haunting anyone who dares to approach.</span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0197">>
<<if setup.gigi is undefined>>
<<run setup.gigi = new Audio("music/gigi.mp3")>>
<<run setup.gigi.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>> <</if>>
<<run setup.gigi.play().catch(()=>{})>><img src="IMG\1\0198.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0198 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+18</span>
<b>POPULATION:</b> <span style="color:#fff;">Numerous higher forms of life</span>
<b>DESCRIPTION:</b> <span style="color:#fff;">A rugged world of jagged mountains and glowing marshlands, shrouded in perpetual night. A Zenthari ship is hovering next to the planet.</span></div>
<div style="text-align: center;"> <a data-passage="0198a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0198">><img src="IMG\1\0198a.png" />
A fellow member of your <n1>species greets you on the planet</n1>, and from him you learn what they are doing here. They were not brought here by a mission or a Guild assignment. They came because they had read the reports you sent to the Guild, and they were curious whether the things you wrote about the humanoids were true. They came here, found a humanoid ship, and chased it all the way to this planet. In fact, the ship’s captain has already made <n1>“contact”</n1> with the humanoid, not far from your position. It’s interesting how much attention your journey’s results have drawn from the inhabitants of the Zenthari homeworld. Your kin’s words don’t clarify everything, but you have a strong suspicion about what <n1>kind of “contact”</n1> he was referring to.
<div style="text-align: center;">[[Take a look at what the captain is doing]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\zencap.mp4" type="video/mp4">
</video>
@@
Now you can clearly see <n1>which parts of your reports they studied closely,</n1> and what they were truly curious about. Yet seeing this raises a legitimate question: <n1>how many of your kin have arrived in this region of the galaxy?</n1> Did your expedition - launched merely to track down unusual creatures - truly cause such a stir on your homeworld? Well… at some point, it may be worth returning there.
<div style="text-align: center;">[[Back|Bridge]]</div><<if $pics26 is true>><div class="hover-image-wrapper"><img src="IMG/1/0160.png" class="main-image" alt="comics"><a data-passage="0199a" class="hover-link link-internal link-image"><img src="IMG/1/0160a.png" class="hover-image" alt="comics"></a></div><<else>><img src="IMG\1\01600.png" /><</if>>
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0199 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+250 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">None</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">A curious planet resembling a vast, circular dish covered in molten layers of cheese-like substance, red sauce rivers, and round, charred disks scattered across its surface. </span></div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0199">>
<<if setup.pizza is undefined>><<run setup.pizza = new Audio("music/pizza.mp3")>><<run setup.pizza.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.pizza.play().catch(()=>{})>>
<img src="IMG/1/0199a.png" />
You find a <n2>severely wounded member of your species on the deck.</n2> The depth of his injuries makes it clear he has only minutes left. Instead of wasting time on a hopeless attempt to save him, you use what little time remains to learn what truly happened. And he speaks… brokenly, with difficulty, each word heavier than the last. Someone is hunting the Zenthari. More precisely, a specific <n2>Zenthari - the one who has been abducting humanoids in this region of the galaxy.</n2> Which means there is no question who the real target is. You. Before his final breath, he manages to force out one last detail: the identity of the attacker. Or at least the shocking truth that the one <n2>who did this was a humanoid.</n2> A humanoid capable of bringing down a Zenthari ship? Almost impossible. But if it’s true, you’d better track him down before he finds you first.
<img src="IMG/1/0199b.png" />
Someone seeking revenge? Or a bounty hunter? <n2>Either way, you need to find out.</n2> You must track this individual down, but you have no leads whatsoever. A space city would be a good starting point - a place where information flows freely. However, a Zenthari asking questions about a Zenthari killer would quickly draw the hunter’s attention. You’ll need a humanoid to gather intel for you, someone who can present themselves as another victim driven by vengeance. But who could you send? <n2>You need a humanoid who will obey your orders even from several light-years away.</n2> Mind control isn’t an option - what you require is an obedient “soldier.”
<div style="text-align: center;"><<if $JunoS is true>>[[Talk to Juno about the bounty hunter|Ship]]<<else>><n2>Juno has not attended training camp yet, or her training is not complete.</n2> <</if>>
[[Back|Bridge]]</div>
<<set $survivor to true>>
<<set $hunter to true>><img src="IMG/1/0200.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0200 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+25 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">1 humanoid</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">Surprisingly, the database contains a full record of this tiny dwarf-planet - and of its sole inhabitant, the undefeatable knight. </span></div>
<<if $human23 is true>><div style="text-align: center;"> <a data-passage="0200a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div><</if>>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0200">>
<<if setup.medi is undefined>><<run setup.medi = new Audio("music/medi.mp3")>><<run setup.medi.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.medi.play().catch(()=>{})>><img src="IMG/1/0200a.png" />
You quickly locate the planet’s only inhabitant - <n3>a female humanoid.</n3> No matter how you look at her or examine her, you sense nothing extraordinary. The undefeatable knight? Is she truly such a remarkable warrior? Well… you’re about to find out, because she immediately challenges you - or your knight - to a duel. Fortunately, you have a few trump cards in this area, so you <n3>accept the challenge</n3> and begin preparing your champion for the fight.
<img src="IMG/1/0200b.png" />
She dons her full armor, takes her sword in hand, and assumes a combat stance. It’s clear she has plenty of experience in close-quarters combat. <n3>She might even surprise you</n3> - perhaps she could defeat your creature as well. Well, you still have mind-control as a last resort. But there’s no time for hesitation. You activate your gravitational beam, and <n3>your horse-human champion</n3> materializes on the planet. The humanoid shows no fear; her confidence continues to radiate. Yet that confidence fades quickly [[once the battle begins.|0200b]]
<<if setup.knight is undefined>><<run setup.knight = new Audio("music/knight.mp3")>><<run setup.knight.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.knight.play().catch(()=>{})>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\horseknight.mp4" type="video/mp4">
</video>
@@
With a single strike, the knight’s sword is sent flying into the sky, and the next blow shatters her armor. <n3>No matter how skilled she is with a blade, she stands no chance against pure brute strength.</n3> She may have defeated many knights before, but those were surely humanoids. Against your creature, she is hopelessly outmatched. You allow your champion to savor the victory, then you collect the so-called <n3>“undefeatable” knight.</n3>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $human23 to false>>
<<set $human += 1>><img src="IMG\1\cruw.png" />
<div style="text-align: center;"><n1>The crew quarters are practically empty</n1> - after all, you brought no companions on this journey. But they may still prove useful. Who knows how many might join you along the way.</div> <div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px;">
<<if $juno is true>><a data-passage="Juno" class="link-internal link-image">
<img src="IMG\1\juno.png" alt="Juno" style="width: 200px;">
</a><</if>>
<<if $ahrinew is true>><a data-passage="Ahrinew" class="link-internal link-image">
<img src="IMG\1\ahri.png" alt="Ahrinew" style="width: 200px;">
</a><</if>>
<<if $JunoS is true>><a data-passage="JunoS" class="link-internal link-image">
<img src="IMG\1\juno.png" alt="JunoS" style="width: 200px;">
</a><</if>>
</div>
<div style="text-align: center;">[[Back|Ship]]</div><<if setup.clickSound is undefined>><<run setup.clickSound = new Audio("music/click.mp3")>><<run setup.clickSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.clickSound.play().catch(()=>{})>>
<<set $message to true>>
<<set $traninga to 7>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\juno2.mp4" type="video/mp4">
</video>
@@
This is <n1>Juno</n1> - the first humanoid you ever spoke to on your journey. During her time with you, she has undergone a tremendous transformation. From friend to enemy, then from enemy to obedient soldier.
<<if $hunter is true>><div style="text-align: center;">[[Talk to Juno about the Zenthari hunter]]</div><</if>>
<div style="text-align: center;">[[Back|Cruw]]</div>
<<if setup.master is undefined>>
<<run setup.master = new Audio("music/master.mp3")>>
<<run setup.master.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.master.play().catch(()=>{})>><img src="IMG\1\junos.png" />
You waste no time on unnecessary details - you go straight to the point and outline the plan for Juno. <n1>Her task is simple, yet crucial: she will travel to Space City 0033 and gather information about the individual who is hunting the Zenthari.</n1> She must report every detail to you through encoded messages. Although she is obedient, your trust in her is not complete. That’s why you send a <n1>nano-robot camera</n1> along with her. The tiny device will hover around Juno, recording every location she visits, allowing her to contact you - and allowing you to keep her under close observation. After all, you still don’t know whether she follows your orders without reservation… or if she might be looking for a chance to escape.
<div style="text-align: center;">[[Send Juno to Planet 0033|Cruw]]</div>
<<set $hunter to false>>
<<set $JunoS to false>>
<<set $Juno033 to true>>
<<set $Juno33 to 1>>
<<set $juno33a to 1>>A video message has arrived from <n1>Planet 0033.</n1> The message came from <n1>Juno,</n1> containing the details of her investigation.
<<if $juno33a is 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\junomessage1.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #2e86c1; padding: 12px; color: #ffffff; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left; background-color: #0b0c10;"><div style="text-align: left; font-weight: bold; color: #c39bd3;">
Subject: Investigation</div><div style="text-align: justify; margin-top: 8px; margin-bottom: 8px; color: #ffffff;">My investigation yielded results quickly, Master! I found two humanoids who might know something - but they demand a high price for the information. What should I do? Where am I supposed to get the money?</div><div style="text-align: right; font-style: italic; margin-top: 8px; color: #c39bd3;">Your humble servant: Juno</div></div>
You reply to Juno’s question with a short message: <n1>convince them that you possess something far more valuable than money.</n1> <</if>><<if $juno33a is 2>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\junomessage1.mp4" type="video/mp4">
</video>
@@
<div style="border: 2px solid #2e86c1; padding: 12px; color: #ffffff; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left; background-color: #0b0c10;"><div style="text-align: left; font-weight: bold; color: #c39bd3;">
Subject: Investigation</div><div style="text-align: justify; margin-top: 8px; margin-bottom: 8px; color: #ffffff;">I managed to convince them with my own methods and extracted some information from them. They might be useful, so I’m going to check the coordinates they gave me.</div><div style="text-align: right; font-style: italic; margin-top: 8px; color: #c39bd3;">Your humble servant: Juno</div></div>
<div style="text-align: center;">[[Check the drone footage]]</div><</if>><<if $juno33a is 3>><img src="IMG\1\junomessage5.png" />
<div style="border: 2px solid #2e86c1; padding: 12px; color: #ffffff; font-family: monospace; font-size: 15px; line-height: 1.4; text-align: left; background-color: #0b0c10;"><div style="text-align: left; font-weight: bold; color: #c39bd3;">
Subject: Investigation</div><div style="text-align: justify; margin-top: 8px; margin-bottom: 8px; color: #ffffff;">My path led me to a space radar station. There, I found the individual the humanoids had spoken about. He had previously made contact with the bounty hunter - in fact, he helped him scan the area for Zenthari ships. He is willing to provide every piece of information about the hunter and all the data needed to locate his vessel, but he asks for two things in return: a favor and suitable compensation. I will handle the payment. The favor, Master, is yours to complete. Here is a code - he seeks your help in breaking it.</div><div style="text-align: right; font-style: italic; margin-top: 8px; color: #c39bd3;">Your humble servant: Juno</div></div>
<div style="text-align: center;">[[Begin cracking the code]]</div>
<</if>>
<<if $juno33a is 4>><img src="IMG\1\junomessage8.png" />
<div style="border: 2px solid #2e86c1; padding: 12px; color: #ffffff; font-family: monospace; font-size: 15px; background-color: #0b0c10;"><div style="font-weight: bold; color: #c39bd3;">Subject: Investigation</div><div style="text-align: justify; margin-top: 8px; color: #ffffff;">Master! I found the bounty hunter. He is currently on this planet. It doesn’t look like he’s searching for you - maybe he’s after someone else, or he’s simply on “vacation”. Either way, he seems like an easy target for now.</div></div>
<img src="IMG\1\junomessage9.png" />
<div style="border: 2px solid #2e86c1; padding: 12px; color: #ffffff; font-family: monospace; font-size: 15px; background-color: #0b0c10;"><div style="font-weight: bold; color: #c39bd3;">Subject: Investigation</div><div style="text-align: justify; margin-top: 8px; color: #ffffff;">As you can see, I’m doing everything I can to keep him here and distract him from the incoming attack. But you’d better hurry!</div><div style="text-align: right; font-style: italic; margin-top: 8px; color: #c39bd3;">Your humble servant: Juno</div></div>
You should set out as soon as possible and <n1>take the shortest route if you want to arrive in time.</n1> The path is more <n1>dangerous because of the meteors</n1>, but it’s faster as well, so stay focused along the way. And of course, <n1>don’t lose sight of Juno and the hunter</n1> - you’re monitoring them live through the drone’s camera.
<div style="text-align: center;">[[Move to the designated coordinates immediately!]]</div><</if>>
<div style="text-align: center;"><<return "Ship">></div>
<<set $Juno33 to 1>>
<<set $message to false>>
<<set $juno33a += 1>>@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/junomessage2.mp4" type="video/mp4">
</video>
@@
The drone recorded Juno’s meeting with the two humanoids, as well as the way she convinced them that what she offered was far more valuable than money. Captain Brigitte’s final message was true - Juno is fully prepared both physically and mentally, and she has already mastered several corrupt abilities, such as persuasion and influence.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/junomessage3.mp4" type="video/mp4">
</video>
@@
Of course, her other traits and abilities have also improved significantly. She even seems a bit disappointed - after all, she had just begun to truly enjoy herself, and already half of her fun is over… and it appears the other half is about to reach its climax as well.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/junomessage4.mp4" type="video/mp4">
</video>
@@
After all, you didn’t send her there to have fun - she was sent to complete a mission. This was merely one step in accomplishing that objective, nothing more. The only thing that matters is obtaining the information, not the enjoyment. How Juno feels [[about it is irrelevant.|Bridge]]
<script>
(function () {
// csak az AKTUÁLIS passage DOM-jában keresünk videókat
const passage = document.currentScript.closest('.passage') || document.body;
const videos = Array.from(passage.querySelectorAll('video'));
let current = null;
if (!videos.length) {
return; // ha nincs video, nincs dolgunk
}
function getClosestToCenter() {
const centerY = window.innerHeight / 2;
let best = null;
let dmin = Infinity;
for (const v of videos) {
const r = v.getBoundingClientRect();
const mid = r.top + r.height / 2;
const d = Math.abs(mid - centerY);
if (d < dmin) {
dmin = d;
best = v;
}
}
return best;
}
async function playWithSound(v) {
if (!v) return;
v.muted = false;
try {
await v.play();
} catch (e) {
// ha a böngésző nem engedi hanggal, némítva indítjuk
v.muted = true;
try { await v.play(); } catch (_) {}
}
}
function stopAll() {
for (const v of videos) {
try {
v.pause();
v.muted = true;
} catch (e) {}
}
current = null;
}
async function updatePlayback() {
const target = getClosestToCenter();
if (!target) {
stopAll();
return;
}
// minden nem cél-videót megállítunk, némítunk
for (const v of videos) {
if (v !== target) {
v.pause();
v.muted = true;
}
}
if (current !== target) {
current = target;
await playWithSound(target);
} else if (target.paused) {
await playWithSound(target);
}
}
function onScrollOrResize() {
updatePlayback();
}
function onVisibilityChange() {
if (document.hidden && current) {
current.pause();
} else {
updatePlayback();
}
}
// eventek bekötése
document.addEventListener('scroll', onScrollOrResize, { passive: true });
window.addEventListener('resize', onScrollOrResize);
document.addEventListener('visibilitychange', onVisibilityChange);
// amikor ELHAGYOD ezt a passage-ot: takarítás
// (SugarCube esemény – a következő passage indulásakor fut le)
$(document).one(':passagestart', function () {
stopAll();
document.removeEventListener('scroll', onScrollOrResize);
window.removeEventListener('resize', onScrollOrResize);
document.removeEventListener('visibilitychange', onVisibilityChange);
});
// induláskor első frissítés
updatePlayback();
})();
</script><img src="IMG/1/codebreak.png" />
<div id="slotContainer">
<div class="slotColumn" id="col1">?</div>
<div class="slotColumn" id="col2">?</div>
<div class="slotColumn" id="col3">?</div>
<div class="slotColumn" id="col4">?</div>
<div class="slotColumn" id="col5">?</div>
</div>
<div id="slotMessage">Press SPACE to stop the columns</div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<style>
#slotContainer {
display: flex;
justify-content: center;
gap: 40px;
margin-bottom: 20px;
}
.slotColumn {
width: 60px;
height: 60px;
font-size: 36px;
background-color: #222;
color: #fff;
font-family: monospace;
display: flex;
justify-content: center;
align-items: center;
border: 2px solid #555;
border-radius: 8px;
}
#slotMessage {
text-align: center;
font-weight: bold;
font-size: 18px;
color: white;
}
</style>
<<script>>
(function () {
// EGYEDI HANDLER, hogy ne ütközzön más slot-kóddal
if (window.slotKeyHandlerCode0033) {
window.removeEventListener("keydown", window.slotKeyHandlerCode0033);
}
const allSymbols = "ABGHIOPSTUVX".split(""); // van benne X is
const winningSymbol = "X";
const highlightColor = "#6b52a3";
// 5 oszlop
let columns = [[], [], [], [], []];
let intervals = [];
let stopped = [false, false, false, false, false];
let stopCount = 0;
let stopIndex = 0;
function shuffle(arr) {
let a = arr.slice();
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
function initializeColumns() {
for (let i = 0; i < 5; i++) {
// minden oszlopban garantáltan lesz egy X
let set = shuffle(allSymbols.filter(c => c !== winningSymbol));
set.splice(5, 0, winningSymbol);
columns[i] = set;
}
}
function clearAllIntervals() {
for (let i = 0; i < intervals.length; i++) {
clearInterval(intervals[i]);
}
intervals = [];
}
function startSpin() {
for (let i = 0; i < 5; i++) {
let index = 0;
const colId = "col" + (i + 1);
const elCol = document.getElementById(colId);
if (!elCol) continue;
intervals[i] = setInterval(() => {
const el = document.getElementById(colId);
if (!el) return;
const val = columns[i][index];
el.innerText = val;
el.style.color = (val === winningSymbol) ? highlightColor : "#fff";
index = (index + 1) % columns[i].length;
}, 400);
}
}
function stopSpin(col) {
clearInterval(intervals[col]);
stopped[col] = true;
stopCount++;
if (stopCount === 5) {
checkWin();
}
}
function checkWin() {
const vals = [1, 2, 3, 4, 5].map(i => {
const el = document.getElementById("col" + i);
return el ? el.innerText : "";
});
const success = vals.every(val => val === winningSymbol);
const msg = document.getElementById("slotMessage");
if (success) {
msg.innerText = "Success! Code cracked.";
msg.style.color = "white";
setTimeout(function () {
if (typeof Engine !== "undefined" && typeof Engine.play === "function") {
Engine.play("codebreak");
}
}, 1000);
} else {
msg.innerHTML = "Failure.<br>Press <strong>R</strong> to retry.";
msg.style.fontSize = "22px";
msg.style.color = "#ff4c4c";
}
}
function resetGame() {
clearAllIntervals();
columns = [[], [], [], [], []];
stopped = [false, false, false, false, false];
stopCount = 0;
stopIndex = 0;
const msg = document.getElementById("slotMessage");
if (msg) {
msg.innerText = "Press SPACE to stop the columns";
msg.style.color = "white";
msg.style.fontSize = "18px";
}
initializeColumns();
startSpin();
}
function keyHandler(e) {
if (e.code === "Space") {
if (stopIndex < 5) {
stopSpin(stopIndex);
stopIndex++;
}
} else if (e.code === "KeyR") {
resetGame();
}
}
// EGYEDI globális referencia
window.slotKeyHandlerCode0033 = keyHandler;
window.addEventListener("keydown", window.slotKeyHandlerCode0033);
// Automatikus indítás
setTimeout(() => {
initializeColumns();
startSpin();
}, 0);
})();
<</script>>
<<if setup.fivex is undefined>><<run setup.fivex = new Audio("music/fivex.mp3")>><<run setup.fivex.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.fivex.play().catch(()=>{})>><img src="IMG/1/codebreak.png" />
The code has been <n1>successfully cracked.</n1> You were given only this fragment, so you still don’t know what system it belongs to or what it is meant to operate - but that no longer matters. <n1>Your task was simply to break the code, and you’ve done that.</n1> Now only one question remains - how is Juno progressing with the humanoid’s <n1>“reward”?</n1> It’s time to check the drone footage.
<div style="text-align: center;">[[Check the drone footage|drone2]]</div>
<<if setup.fivex && !setup.fivex.paused>>
<<run setup.fivex.pause()>>
<<run setup.fivex.currentTime = 0>>
<</if>>@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/junomessage6.mp4" type="video/mp4">
</video>
@@
It seems that the <n1>“reward”</n1> - and the process of persuading the humanoid - is still very much underway. This time, Juno doesn’t look disappointed at all; in fact, she seems to be enjoying herself quite a lot. Because of that, you hold off on sending back the cracked code. <n1>You feel she’s earned a little uninterrupted time</n1> - after all, she follows your orders and is carrying out an important mission.
@@.vid;
<video loop playsinline preload="metadata" controls>
<source src="IMG/VID/junomessage7.mp4" type="video/mp4">
</video>
@@
All good things eventually come to an end - though this time, <n1>Juno finishes with a satisfied sigh.</n1> The moment has arrived to transmit the cracked code and receive the information you were promised. These details lead you to the <n1>bounty hunter’s last known location.</n1> You send Juno ahead, and if she finds him there, you [[will strike immediately.|Bridge]]
<script>
(function () {
// csak az AKTUÁLIS passage DOM-jában keresünk videókat
const passage = document.currentScript.closest('.passage') || document.body;
const videos = Array.from(passage.querySelectorAll('video'));
let current = null;
if (!videos.length) {
return; // ha nincs video, nincs dolgunk
}
function getClosestToCenter() {
const centerY = window.innerHeight / 2;
let best = null;
let dmin = Infinity;
for (const v of videos) {
const r = v.getBoundingClientRect();
const mid = r.top + r.height / 2;
const d = Math.abs(mid - centerY);
if (d < dmin) {
dmin = d;
best = v;
}
}
return best;
}
async function playWithSound(v) {
if (!v) return;
v.muted = false;
try {
await v.play();
} catch (e) {
// ha a böngésző nem engedi hanggal, némítva indítjuk
v.muted = true;
try { await v.play(); } catch (_) {}
}
}
function stopAll() {
for (const v of videos) {
try {
v.pause();
v.muted = true;
} catch (e) {}
}
current = null;
}
async function updatePlayback() {
const target = getClosestToCenter();
if (!target) {
stopAll();
return;
}
// minden nem cél-videót megállítunk, némítunk
for (const v of videos) {
if (v !== target) {
v.pause();
v.muted = true;
}
}
if (current !== target) {
current = target;
await playWithSound(target);
} else if (target.paused) {
await playWithSound(target);
}
}
function onScrollOrResize() {
updatePlayback();
}
function onVisibilityChange() {
if (document.hidden && current) {
current.pause();
} else {
updatePlayback();
}
}
// eventek bekötése
document.addEventListener('scroll', onScrollOrResize, { passive: true });
window.addEventListener('resize', onScrollOrResize);
document.addEventListener('visibilitychange', onVisibilityChange);
// amikor ELHAGYOD ezt a passage-ot: takarítás
// (SugarCube esemény – a következő passage indulásakor fut le)
$(document).one(':passagestart', function () {
stopAll();
document.removeEventListener('scroll', onScrollOrResize);
window.removeEventListener('resize', onScrollOrResize);
document.removeEventListener('visibilitychange', onVisibilityChange);
});
// induláskor első frissítés
updatePlayback();
})();
</script><div id="meteorGame">
<div id="meteorProgressWrapper">
<input
id="meteorProgressSlider"
type="range"
min="0"
max="100"
value="0"
disabled
/>
</div>
<div id="meteorStatus">Reach the resort planet as fast as you can.</div>
<div id="meteorWarning">Waiting for first meteor...</div>
<div id="meteorResult"></div>
<div id="meteorControls">
<button class="meteorBtn" data-dir="up">▲ UP</button>
<button class="meteorBtn" data-dir="left">◀ LEFT</button>
<button class="meteorBtn" data-dir="right">RIGHT ▶</button>
<button class="meteorBtn" data-dir="down">DOWN ▼</button>
</div>
<div style="text-align:center; margin-top: 10px;">
[[Abort mission|Bridge]]
</div>
</div>
<style>
#meteorGame {
max-width: 700px;
margin: 0 auto;
text-align: center;
font-family: sans-serif;
}
/* Progress wrapper – CSAK a slider marad */
#meteorProgressWrapper {
max-width: 600px;
margin: 0 auto 10px auto;
text-align: center;
}
/* Slider kinézete */
#meteorProgressSlider {
-webkit-appearance: none;
appearance: none;
width: 100%;
height: 14px;
border-radius: 7px;
background: #111;
outline: none;
border: 2px solid #4aa3ff;
}
/* Track */
#meteorProgressSlider::-webkit-slider-runnable-track {
height: 10px;
border-radius: 5px;
background: linear-gradient(90deg, #00ff88, #4aa3ff);
}
#meteorProgressSlider::-moz-range-track {
height: 10px;
border-radius: 5px;
background: linear-gradient(90deg, #00ff88, #4aa3ff);
}
/* Thumb (fogantyú) */
#meteorProgressSlider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 18px;
height: 18px;
border-radius: 50%;
background: #ffffff;
border: 2px solid #4aa3ff;
margin-top: -4px;
}
#meteorProgressSlider::-moz-range-thumb {
width: 18px;
height: 18px;
border-radius: 50%;
background: #ffffff;
border: 2px solid #4aa3ff;
}
/* Szövegek */
#meteorStatus {
margin-bottom: 8px;
font-weight: bold;
color: #ffffff;
}
#meteorWarning {
margin-bottom: 6px;
color: #ffd27f;
}
/* villogó vörös figyelmeztetés */
#meteorWarning.flash {
color: #ff4a4a;
font-weight: bold;
text-shadow: 0 0 8px #ff0000;
animation: meteorBlink 0.4s linear infinite;
}
@keyframes meteorBlink {
0%, 100% { opacity: 1; }
50% { opacity: 0.2; }
}
#meteorResult {
min-height: 20px;
margin-bottom: 12px;
color: #ffffff;
}
/* Gombok */
#meteorControls {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px;
}
.meteorBtn {
padding: 10px 20px;
font-size: 18px;
border-radius: 8px;
border: 2px solid #4aa3ff;
background-color: #122033;
color: #ffffff;
cursor: pointer;
min-width: 120px;
}
.meteorBtn:hover {
background-color: #1a2b44;
}
</style>
<<script>>
(function () {
function startWhenReady() {
const slider = document.getElementById("meteorProgressSlider");
const buttons = document.querySelectorAll(".meteorBtn");
const warn = document.getElementById("meteorWarning");
if (!slider || buttons.length === 0 || !warn) {
return setTimeout(startWhenReady, 50);
}
startMeteorGame();
}
function startMeteorGame() {
const progressSlider = document.getElementById("meteorProgressSlider");
const statusEl = document.getElementById("meteorStatus");
const warningEl = document.getElementById("meteorWarning");
const resultEl = document.getElementById("meteorResult");
// Időzítés
const tickIntervalMs = 100; // 0,1 mp / tick
const baseDurationSec = 30;
const maxDurationSec = 40;
const penaltySec = 2;
const ticksPerSecond = 1000 / tickIntervalMs;
const totalBaseTicks = baseDurationSec * ticksPerSecond;
const maxTicks = maxDurationSec * ticksPerSecond;
const progressPerTick = 100 / totalBaseTicks;
const penaltyProgress = penaltySec * ticksPerSecond * progressPerTick;
const meteorResponseTimeMs = 2000; // 2 mp válaszidő
const meteorGapMs = 5000; // 5 mp szünet a meteorok között
let progress = 0;
let tickCount = 0;
let running = true;
const dirs = ["up","down","left","right"];
const dirText = {
up: "UPPER side",
down: "LOWER side",
left: "LEFT side",
right: "RIGHT side"
};
const opposite = {
up: "down",
down: "up",
left: "right",
right: "left"
};
let meteorDir = null;
let safeDir = null;
let meteorTimeout = null; // 2 mp-es timer
let spawnTimeout = null; // 5 mp-es „következő meteor” timer
function updateBar() {
let clamped = Math.max(0, Math.min(progress, 100));
if (progressSlider) {
progressSlider.value = clamped;
}
}
function clearMeteorTimeout() {
if (meteorTimeout !== null) {
clearTimeout(meteorTimeout);
meteorTimeout = null;
}
}
function clearSpawnTimeout() {
if (spawnTimeout !== null) {
clearTimeout(spawnTimeout);
spawnTimeout = null;
}
}
// Meteor tényleges megjelenése
function spawnMeteor() {
if (!running) return;
meteorDir = dirs[Math.floor(Math.random() * dirs.length)];
safeDir = opposite[meteorDir];
warningEl.classList.remove("flash");
void warningEl.offsetWidth; // animáció reset
warningEl.textContent = "Warning: meteor on the " + dirText[meteorDir] + "!";
warningEl.classList.add("flash");
resultEl.textContent = "";
resultEl.style.color = "#ffffff";
// 2 mp válaszidő
meteorTimeout = setTimeout(function () {
if (!running) return;
warningEl.classList.remove("flash");
resultEl.textContent = "Too slow! Meteor hit the ship!";
resultEl.style.color = "#ff6b6b";
progress -= penaltyProgress;
updateBar();
// következő meteor 5 mp múlva
scheduleNextMeteor(meteorGapMs);
}, meteorResponseTimeMs);
}
// Új meteor időzítése (pl. 0 ms induláskor, 5000 ms két meteor között)
function scheduleNextMeteor(delayMs) {
clearMeteorTimeout();
clearSpawnTimeout();
spawnTimeout = setTimeout(spawnMeteor, delayMs);
}
function choose(dir) {
if (!running) return;
clearMeteorTimeout();
warningEl.classList.remove("flash");
if (dir === safeDir) {
resultEl.textContent = "DODGED!";
resultEl.style.color = "#81ffdd";
} else {
resultEl.textContent = "HIT! Losing distance...";
resultEl.style.color = "#ff6b6b";
progress -= penaltyProgress;
updateBar();
}
// következő meteor 5 mp múlva
scheduleNextMeteor(meteorGapMs);
}
// Gombok
document.querySelectorAll(".meteorBtn").forEach(btn => {
btn.addEventListener("click", () => choose(btn.dataset.dir));
});
// Nyilak
function keyHandler(e) {
if (!running) return;
if (e.code === "ArrowUp") choose("up");
else if (e.code === "ArrowDown") choose("down");
else if (e.code === "ArrowLeft") choose("left");
else if (e.code === "ArrowRight") choose("right");
}
if (window.meteorGameKeyHandler) {
window.removeEventListener("keydown", window.meteorGameKeyHandler);
}
window.meteorGameKeyHandler = keyHandler;
window.addEventListener("keydown", window.meteorGameKeyHandler);
const loop = setInterval(function () {
if (!running) {
clearInterval(loop);
return;
}
tickCount++;
progress += progressPerTick;
updateBar();
// Siker
if (progress >= 100) {
running = false;
clearMeteorTimeout();
clearSpawnTimeout();
warningEl.classList.remove("flash");
statusEl.textContent = "You reached the resort planet in time!";
warningEl.textContent = "";
clearInterval(loop);
return;
}
// Idő lejárt – bukta
if (tickCount >= maxTicks && progress < 100) {
running = false;
clearMeteorTimeout();
clearSpawnTimeout();
warningEl.classList.remove("flash");
statusEl.textContent = "Mission failed. Too slow.";
warningEl.textContent = "";
resultEl.textContent = "";
clearInterval(loop);
return;
}
}, tickIntervalMs);
// első meteor AZONNAL:
scheduleNextMeteor(0);
updateBar();
}
startWhenReady();
})();
<</script>>
[[game]]@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\junohunter.mp4" type="video/mp4">
</video>
@@<div id="meteorGame">
<div id="meteorProgressWrapper">
<input
id="meteorProgressSlider"
type="range"
min="0"
max="100"
value="0"
disabled
/></div> <div id="meteorStatus">Reach the resort planet as fast as you can while Juno holds off the hunter.</div><div id="meteorWarning">Waiting for first meteor...</div><div id="meteorResult"></div><div id="meteorControls">
<button class="meteorBtn" data-dir="up">▲ UP</button>
<button class="meteorBtn" data-dir="left">◀ LEFT</button>
<button class="meteorBtn" data-dir="right">RIGHT ▶</button>
<button class="meteorBtn" data-dir="down">DOWN ▼</button>
</div>
<div style="text-align:center; margin-top: 10px;">
[[Abort mission|Bridge]]
</div>
</div>
<style>
#meteorGame {
max-width: 700px;
margin: 0 auto;
text-align: center;
font-family: sans-serif;
}
/* Progress wrapper – CSAK a slider marad */
#meteorProgressWrapper {
max-width: 600px;
margin: 0 auto 10px auto;
text-align: center;
}
/* Slider kinézete */
#meteorProgressSlider {
-webkit-appearance: none;
appearance: none;
width: 100%;
height: 14px;
border-radius: 7px;
background: #111;
outline: none;
border: 2px solid #4aa3ff;
}
/* Track */
#meteorProgressSlider::-webkit-slider-runnable-track {
height: 10px;
border-radius: 5px;
background: linear-gradient(90deg, #00ff88, #4aa3ff);
}
#meteorProgressSlider::-moz-range-track {
height: 10px;
border-radius: 5px;
background: linear-gradient(90deg, #00ff88, #4aa3ff);
}
/* Thumb (fogantyú) */
#meteorProgressSlider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 18px;
height: 18px;
border-radius: 50%;
background: #ffffff;
border: 2px solid #4aa3ff;
margin-top: -4px;
}
#meteorProgressSlider::-moz-range-thumb {
width: 18px;
height: 18px;
border-radius: 50%;
background: #ffffff;
border: 2px solid #4aa3ff;
}
/* Szövegek */
#meteorStatus {
margin-bottom: 8px;
font-weight: bold;
color: #ffffff;
}
#meteorWarning {
margin-bottom: 6px;
color: #ffd27f;
}
/* villogó vörös figyelmeztetés */
#meteorWarning.flash {
color: #ff4a4a;
font-weight: bold;
text-shadow: 0 0 8px #ff0000;
animation: meteorBlink 0.4s linear infinite;
}
@keyframes meteorBlink {
0%, 100% { opacity: 1; }
50% { opacity: 0.2; }
}
#meteorResult {
min-height: 20px;
margin-bottom: 12px;
color: #ffffff;
}
/* Gombok */
#meteorControls {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px;
}
.meteorBtn {
padding: 10px 20px;
font-size: 18px;
border-radius: 8px;
border: 2px solid #4aa3ff;
background-color: #122033;
color: #ffffff;
cursor: pointer;
min-width: 120px;
}
.meteorBtn:hover {
background-color: #1a2b44;
}
</style>
<<script>>
(function () {
function startWhenReady() {
const slider = document.getElementById("meteorProgressSlider");
const buttons = document.querySelectorAll(".meteorBtn");
const warn = document.getElementById("meteorWarning");
if (!slider || buttons.length === 0 || !warn) {
return setTimeout(startWhenReady, 50);
}
startMeteorGame();
}
function startMeteorGame() {
const progressSlider = document.getElementById("meteorProgressSlider");
const statusEl = document.getElementById("meteorStatus");
const warningEl = document.getElementById("meteorWarning");
const resultEl = document.getElementById("meteorResult");
// Időzítés
const tickIntervalMs = 100; // 0,1 mp / tick
const baseDurationSec = 30;
const maxDurationSec = 40;
const penaltySec = 3;
const ticksPerSecond = 1000 / tickIntervalMs;
const totalBaseTicks = baseDurationSec * ticksPerSecond;
const maxTicks = maxDurationSec * ticksPerSecond;
const progressPerTick = 100 / totalBaseTicks;
const penaltyProgress = penaltySec * ticksPerSecond * progressPerTick;
const meteorResponseTimeMs = 2000; // 2 mp válaszidő
const meteorGapMs = 5000; // 5 mp szünet a meteorok között
let progress = 0;
let tickCount = 0;
let running = true;
const dirs = ["up","down","left","right"];
const dirText = {
up: "UPPER side",
down: "LOWER side",
left: "LEFT side",
right: "RIGHT side"
};
const opposite = {
up: "down",
down: "up",
left: "right",
right: "left"
};
let meteorDir = null;
let safeDir = null;
let meteorTimeout = null; // 2 mp-es timer
let spawnTimeout = null; // 5 mp-es „következő meteor” timer
function updateBar() {
let clamped = Math.max(0, Math.min(progress, 100));
if (progressSlider) {
progressSlider.value = clamped;
}
}
function clearMeteorTimeout() {
if (meteorTimeout !== null) {
clearTimeout(meteorTimeout);
meteorTimeout = null;
}
}
function clearSpawnTimeout() {
if (spawnTimeout !== null) {
clearTimeout(spawnTimeout);
spawnTimeout = null;
}
}
// Meteor tényleges megjelenése
function spawnMeteor() {
if (!running) return;
meteorDir = dirs[Math.floor(Math.random() * dirs.length)];
safeDir = opposite[meteorDir];
warningEl.classList.remove("flash");
void warningEl.offsetWidth; // animáció reset
warningEl.textContent = "Warning: meteor on the " + dirText[meteorDir] + "!";
warningEl.classList.add("flash");
resultEl.textContent = "";
resultEl.style.color = "#ffffff";
// 2 mp válaszidő
meteorTimeout = setTimeout(function () {
if (!running) return;
warningEl.classList.remove("flash");
resultEl.textContent = "Too slow! Meteor hit the ship!";
resultEl.style.color = "#ff6b6b";
progress -= penaltyProgress;
updateBar();
// következő meteor 5 mp múlva
scheduleNextMeteor(meteorGapMs);
}, meteorResponseTimeMs);
}
// Új meteor időzítése (pl. 0 ms induláskor, 5000 ms két meteor között)
function scheduleNextMeteor(delayMs) {
clearMeteorTimeout();
clearSpawnTimeout();
spawnTimeout = setTimeout(spawnMeteor, delayMs);
}
function choose(dir) {
if (!running) return;
clearMeteorTimeout();
warningEl.classList.remove("flash");
if (dir === safeDir) {
resultEl.textContent = "DODGED!";
resultEl.style.color = "#81ffdd";
} else {
resultEl.textContent = "HIT! Losing distance...";
resultEl.style.color = "#ff6b6b";
progress -= penaltyProgress;
updateBar();
}
// következő meteor 5 mp múlva
scheduleNextMeteor(meteorGapMs);
}
// Gombok
document.querySelectorAll(".meteorBtn").forEach(btn => {
btn.addEventListener("click", () => choose(btn.dataset.dir));
});
// Nyilak
function keyHandler(e) {
if (!running) return;
if (e.code === "ArrowUp") choose("up");
else if (e.code === "ArrowDown") choose("down");
else if (e.code === "ArrowLeft") choose("left");
else if (e.code === "ArrowRight") choose("right");
}
if (window.meteorGameKeyHandler) {
window.removeEventListener("keydown", window.meteorGameKeyHandler);
}
window.meteorGameKeyHandler = keyHandler;
window.addEventListener("keydown", window.meteorGameKeyHandler);
const loop = setInterval(function () {
if (!running) {
clearInterval(loop);
return;
}
tickCount++;
progress += progressPerTick;
updateBar();
// Siker
if (progress >= 100) {
running = false;
clearMeteorTimeout();
clearSpawnTimeout();
warningEl.classList.remove("flash");
statusEl.textContent = "You reached the resort planet in time!";
warningEl.textContent = "";
clearInterval(loop);
// >>> siker esetén hunterwin passage
setTimeout(function () {
if (typeof Engine !== "undefined") {
Engine.play("hunterwin");
}
}, 800);
return;
}
// Idő lejárt – bukta
if (tickCount >= maxTicks && progress < 100) {
running = false;
clearMeteorTimeout();
clearSpawnTimeout();
warningEl.classList.remove("flash");
statusEl.textContent = "Mission failed. Too slow.";
warningEl.textContent = "";
resultEl.textContent = "";
clearInterval(loop);
// >>> bukás esetén hunterfail passage
setTimeout(function () {
if (typeof Engine !== "undefined") {
Engine.play("hunterfail");
}
}, 800);
return;
}
}, tickIntervalMs);
// első meteor AZONNAL:
scheduleNextMeteor(0);
updateBar();
}
startWhenReady();
})();
<</script>>
[[Move to the designated coordinates immediately!]]<img src="IMG\1\junomessage10.png" />
You’re too late! All you find on the planet is <n1>Juno… exhausted, barely breathing, lying motionless.</n1>That’s as long as she managed to hold off the hunter. And that’s bad news for you - your enemy has vanished from the [[radar once again.|Bridge]]
<<set $hunterfail to true>>
<<set $JunoS to true>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\junomessage10.mp4" type="video/mp4">
</video>
@@
You arrive just in time - <n1>Juno has reached her limit.</n1>Exhausted and limp in the hunter’s arms, she lies motionless, as if she has already accepted her fate. She no longer resists; she simply lets the events around her unfold. It’s time to put an end to this. <n1>The hunter’s attention is entirely focused on Juno</n1>, leaving him unaware of your presence - his mind becomes an easy target. With a single, powerful mental surge, you force your way into his thoughts. But before you <n1>eliminate him,</n1> you need one more thing: the truth. You must know [[who is behind all of this!]]
<<set $JunoS to true>><img src="IMG\1\huntermind.png" />
You seize control of his mind, yet he still manages to fight back from within. He cannot escape you, but you cannot extract any information from him either. No matter what you ask, he keeps repeating the same answer, filled with hatred and defiance: <n2>“You’ll get nothing out of me, you bastard!”</n2> You realize there’s no reason to waste any more time. With a single, devastating psychic surge, you overwhelm his defenses and <n2>obliterate his mind</n2>. His body goes still as his consciousness fades into nothingness. But even as he falls, you feel it in your bones - <n2>this isn’t over</n2>. He was only one of many. And others are still out there… [[hunting you.|Bridge]]
<<set $Juno033 to false>>
<<set $mindIdx = (typeof $mindIdx === "number") ? (($mindIdx % 4) + 1) : 1>>
<<set _roll = $mindIdx>>
<<switch _roll>>
<<case 1>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind1.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind1.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 2>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind2.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind2.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 3>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind3.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind3.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 4>>
<<if setup.mindSound is undefined>>
<<run setup.mindSound = new Audio("music/mind4.mp3")>>
<<run setup.mindSound.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>>
<</if>>
<<run setup.mindSound.src = "music/mind4.mp3">>
<<run setup.mindSound.play().catch(()=>{})>>
<<case 5>>
<!-- üres, nem indul semmi -->
<</switch>>
<img src="IMG/1/0228.png" />
<div style="border:2px solid #25737d;border-radius:14px;padding:12px 14px;color:#25737d;font:15px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#000000;box-shadow:0 0 0 1px rgba(37,115,125,.12) inset,0 10px 24px rgba(0,0,0,.35);"><b>OBJECT ID:</b><span style="color:#d64141;"> 0228 </span>
<b>TEMPERATURE:</b> <span style="color:#c0392b;">+19 °C</span>
<b>POPULATION:</b> <span style="color:#ffffff;">N/A</span>
<b>DESCRIPTION:</b> <span style="color:#ffffff;">The scanners detect no life on the planet, yet it appears as if something alive is hiding beneath the surface.</span></div>
<div style="text-align: center;"> <a data-passage="0228a" class="link-internal link-image"><img src="IMG\enter.png" style="max-height: 150px; height: auto; width: auto;"> </a> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $lastvisit to "0228">>
<img src="IMG/1/0228a.png" />
Standing at the edge of one of the openings, you can feel something moving beneath the ground. <n1>There may be no life on the planet’s surface, but below it there’s plenty.</n1> The only question is whether it’s a single massive creature or several separate ones. You’ll have to lure them out to find out - and for that, you need bait. You do have someone you could use… but is it worth the sacrifice?
<div style="text-align: center;">[[Drop the bait into the tunnels]]</div>
<div style="text-align: center;">[[Back|Bridge]]</div><div class="mc-row">
<a class="mc-card"
onclick="SugarCube.Engine.play('hole1')"
onkeypress="if(event.key==='Enter'){SugarCube.Engine.play('mino1')}">
<img src="IMG/1/hole1.png">
</a>
<a class="mc-card"
onclick="SugarCube.Engine.play('hole2')"
onkeypress="if(event.key==='Enter'){SugarCube.Engine.play('mino2')}">
<img src="IMG/1/hole2.png">
</a>
<a class="mc-card"
onclick="SugarCube.Engine.play('hole3')"
onkeypress="if(event.key==='Enter'){SugarCube.Engine.play('mino3')}">
<img src="IMG/1/hole3.png">
</a>
</div>
You examined several tunnels, but at <n1>three of them</n1> the presence of life felt the strongest. So you decide to try luring out whatever creature - or creatures - may be hiding beneath the ground at those points.
<div style="text-align: center;">[[Back|Bridge]]</div>
<style>
.mc-row{
display:flex;
justify-content:center;
align-items:center;
gap:12px;
flex-wrap:wrap;
margin:10px 0;
}
.mc-card{
display:block;
width:260px; /* álló képekhez ideális */
border-radius:10px;
overflow:hidden;
box-shadow:0 2px 10px rgba(0,0,0,.35);
transition:transform 160ms ease, box-shadow 160ms ease;
cursor:pointer;
}
.mc-card img{
width:100%;
height:auto; /* NEM vágja le a képet */
display:block;
}
.mc-card:hover,
.mc-card:focus-visible{
transform:translateY(-2px) scale(1.03);
box-shadow:0 12px 24px rgba(0,0,0,.45);
}
</style>
<img src="IMG/1/hole1a.png" />
As you step to the edge of the opening, you feel the ground tremble beneath your feet. <n1>Something moves below… something that briefly glows with a faint blue light.</n1> You were right - there is life beneath the surface. But what kind?
There’s only one way to find out: bait.
<<if $male >= 1>><div style="text-align: center;"> [[Throw down a male humanoid|holem1]]<<else>> <n2>⚠ Get a (male)humanoid!</n2> <</if>> </div>
<<if $human >= 1>><div style="text-align: center;"> [[Throw down a female humanoid|holef1]]<<else>> <n2>⚠ Get a (female)humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\holem1.mp4" type="video/mp4">
</video>
@@
The tentacles burst up from the depths and seize the humanoid. Once they coil around it and render it completely immobile, <n1>their shape begins to change.</n1>The previously uniform, vine-like tentacle splits open at the end like a funnel. With this new form, it attaches itself to the humanoid’s body as if merging with it. <n1>It seems the tentacle adapts to its prey.</n1> In the case of male humanoids, its appearance changes even further - as if it were reshaping itself [[specifically for them.|Drop the bait into the tunnels]]
<<set $male -= 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\holef1.mp4" type="video/mp4">
</video>
@@
Thousands of tentacles, all belonging to a single creature. Each one coated in a phosphorescent blue substance - the source of that strange light rising from the depths. <n1>The tentacles reach for the humanoid all at once, grabbing it in a single coordinated motion.</n1> They coil around it, engulf it completely, and then drag it down into the depths… from which there is [[no escape.|Drop the bait into the tunnels]]
<<set $human -= 1>><img src="IMG/1/hole2a.png" />
As you step to the edge of the opening, you feel the ground tremble beneath your feet. <n3>Whatever moved down there lit up with a yellow glow.</n3> The ground trembles with each motion it makes. Something big is hiding in the depths.
<<if $male >= 1>><div style="text-align: center;"> [[Throw down a male humanoid|holem2]]<<else>> <n2>⚠ Get a (male)humanoid!</n2> <</if>> </div>
<<if $human >= 1>><div style="text-align: center;"> [[Throw down a female humanoid|holef2]]<<else>> <n2>⚠ Get a (female)humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\holem2.mp4" type="video/mp4">
</video>
@@
First, the <n1>tentacles wrap around the humanoid's cock, then they transform.</n1> More and more tentacles begin to transform, and these funnel-like ends wrap themselves around different parts of the humanoid’s body. Not only his cock, but also his balls and head are surrounded by [[such tentacles.|Drop the bait into the tunnels]]
<<set $male -= 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\holef2.mp4" type="video/mp4">
</video>
@@
Tentacles burst up from the depths, covered in patches of <n3>glowing yellow light.</n3> The luminous substance lies beneath their skin - it’s what gives off that eerie yellow glow. The tentacles immobilize the humanoid instantly; there is no chance to flee, no room to fight back. [[Their fate is sealed.|Drop the bait into the tunnels]]
<<set $human -= 1>><img src="IMG/1/hole3a.png" />
As you step to the edge of the opening, you feel the ground tremble beneath your feet. <n3>A brown haze rises from below,</n3> as if the remnants of something lie hidden at the bottom of the pit. <n3>Could it be the ruins of an ancient civilization?</n3> And was it the creature living beneath the ground that destroyed them?
<<if $male >= 1>><div style="text-align: center;"> [[Throw down a male humanoid|holem3]]<<else>> <n2>⚠ Get a (male)humanoid!</n2> <</if>> </div>
<<if $human >= 1>><div style="text-align: center;"> [[Throw down a female humanoid|holef3]]<<else>> <n2>⚠ Get a (female)humanoid!</n2> <</if>> </div>
<div style="text-align: center;">[[Back|Bridge]]</div>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\holem3.mp4" type="video/mp4">
</video>
@@
The process is the same as before: the tentacles capture, disarm, and practically “imprison” the humanoid. Then, regardless of gender, they seem to approach the humanoids in much the same way - whether male or female. <n1>However, there is one thing that never changes, not for male nor for female humanoids:</n1> the fact that the tentacles try to penetrate the humanoid's [[body at all costs.|Drop the bait into the tunnels]]
<<set $male -= 1>>@@.vid;
<video controls autoplay loop>
<source src="IMG\VID\holef3.mp4" type="video/mp4">
</video>
@@
Tentacles erupt from beneath the surface, snatching the humanoid without hesitation. They drag the body down into the depths, all the way to the underground ruins of an ancient civilization. There, the tentacles coil around their captive, pushing past every physical boundary until they practically merge with the [[humanoid’s body.|Drop the bait into the tunnels]]
<<set $human -= 1>>This path takes you straight to the new content - it automatically marks planets <n1>0000–0150</n1> as fully explored. It grants you all capture-able creatures from those planets, adds 15 male and 15 female humanoids to your roster, and considers Juno’s training complete. In short, it finishes all earlier quests and gives you a clean, uninterrupted start for exploring planets <n1>0150–0200.</n1>
[[Let the adventure begin|Ship]]
<<set $junoq4 to true>>
<<set $sucubus1 to false>>
<<set $lastvisit to "0150">>
<<set $codeNum to 59>>
<<set $oni to true>>
<<set $horse to true>>
<<set $kentaur to true>>
<<set $dog to true>>
<<set $werewolf to true>>
<<set $b019 to true>>
<<set $b022 to true>>
<<set $b026 to true>>
<<set $b033 to true>>
<<set $b046 to true>>
<<set $b053 to true>>
<<set $b102 to true>>
<<set $b150 to true>>
<<set $tutbridge to false>>
<<set $tutor to true>>
<<set $tutorial to false>>
<<set $tutbridge0 to false>>
<<set $humanoid to true>>
<<set $ahrinew to true>>
<<set $xeno to true>>
<<set $horsehuman to true>>
<<set $sadako to true>>
<<set $vex to true>>
<<set $muffet to true>>
<<set $human to 15>>
<<set $male to 15>>
<<set $pics to 16>>
<<set $message to true>>
<<set $traninga to 6>> <<set $human1 to false>>
<<set $human2 to false>>
<<set $human3 to false>>
<<set $human4 to false>>
<<set $human5 to false>>
<<set $human6 to false>>
<<set $human7 to false>>
<<set $human8 to false>>
<<set $human9 to false>>
<<set $human10 to false>>
<<set $human11 to false>>
<<set $human12 to false>>
<<set $human13 to false>>
<<set $human14 to false>>
<<set $human15 to false>>
<<set $human16 to false>>
<<set $human17 to false>>
<<set $human18 to false>>
<<set $human19 to false>>
<<set $male1 to false>>
<<set $male2 to false>>
<<set $male3 to false>>
<<set $male4 to false>>
<<set $male5 to false>>
<<set $male6 to false>>
<<set $male7 to false>>
<<set $male8 to false>>
<<set $male9 to false>>
<<set $male10 to false>>
<<set $male11 to false>>
<<set $pics1 to false>>
<<set $pics2 to false>>
<<set $pics3 to false>>
<<set $pics4 to false>>
<<set $pics5 to false>>
<<set $pics6 to false>>
<<set $pics7 to false>>
<<set $pics8 to false>>
<<set $pics9 to false>>
<<set $pics10 to false>>
<<set $pics11 to false>>
<<set $pics12 to false>>
<<set $pics13 to false>>
<<set $pics14 to false>>
<<set $pframes to 2>>
<<set $ahri to true>>
<<set $yako to true>>
<<set $comics3b to true>>
<<set $samara to 6>><img src="IMG\1\art1.png" />
What you have found is nothing less than a <n1>Galactic Canvas</n1>. A durable material, designed for <n1>artistic creations</n1>, capable of preserving its content even against the harsh conditions of space. In your <n1>spaceship</n1>, you can reveal what image it conceals.
<div style="text-align: center;">[[Back|Bridge]]</div>
<<set $pics +=1>>
<<set $pics26 to false>>
<<if setup.page is undefined>><<run setup.page = new Audio("music/page.mp3")>><<run setup.page.volume = (typeof $sfxVol === "number") ? $sfxVol : 1>><</if>><<run setup.page.play().catch(()=>{})>>